7 单点登录

7.1 单点登录

时序图

  • 下图以第三方系统集成机器人为例(JWT 实现)

第三方系统开发

  • 使用约定好的jwt secret 对 email,name, state 进行签名,生成jwt。
email:邮箱地址,座位环信机器人的用户名
name:昵称
state:登录后的状态 建议填写 Enable
externalId:如果externalId 不为空,则作为用户名,如果externalId为空,则email必须填写
secret:双方约定
String jwt = JWT.create()
        .withIssuedAt(new Date())
        .withJWTId(UUID.randomUUID().toString())
        .withClaim("email", "email")
        .withClaim("name", "昵称")
        .withClaim("state", "Enable")
        .withClaim("externalId","如果email不填写,那么这个地方写用户名")
        .sign(Algorithm.HMAC256("secret 约定好的密钥"));
  • 生成jwt 后,则访问SSO 接口
  http://robot.easemob.com/v10/commons/access?jwt=jwt&returnTo=http://robot.easemob.com/mo/robot&tenantId=1
  • 参数说明
tenantId:在环信创建的租户id
jwt:上面生成的jwt信息
returnTo:登录成功后需要跳转到那个页面  默认地址为 http://robot.easemob.com/mo/robot 访问这个接口后,环信为根据jwt进行验证,并自动登录,然后跳转到returnTo 所指定的地址