开发一个登录页面,使用第三方自己的用户体系登录,比如:
在第三方登录成功之后,使用约定好的jwt secret对email、name、state进行签名,生成的jwt有3分钟有效期。
email 必填 邮箱地址,当做环信用户名
name 必填 为昵称用于创建用户的时候使用
state 必填 为登录状态Online、Hidden
externalId 选填 如果第三方系统的邮箱不是用户名而是可以随时改变的一个资料信息,那么在这里填写真正登录使用的用户名
JWT_SECRET 必填 为多租户管理后台“设置 > 单点登录”页面的“登录密钥”
String jwt = JWT.create()
.withIssuedAt(new Date())
.withJWTId(UUID.randomUUID().toString())
.withClaim("email", email)
.withClaim("name", "昵称")
.withClaim("externalId", "如果第三方用户名不为email,这里填写用户名")
.withClaim("state", "Online")
.sign(Algorithm.HMAC256(JWT_SECRET));
生成好jwt之后,需要redirect回环信的地址:
http://lcx.kefu.easemob.com/v1/access/jwt?jwt={jwt}&returnTo={return_to}&type=org&tenantId=?
参数说明:
jwt: 上述根据email、name、state进行签名后生成的jwt
returnTo: 可以使用跳转到第三方平台时url地址携带的returnTo地址
tenantId: 环信移动客服系统的租户ID
移动客服根据jwt进行验证之后,会自动进行登录,并且跳转到return_to的地址。