API 参考
圈组

登录鉴权

更新时间: 2024/07/17 17:57:35

网易云信提供三种登录鉴权的方式,包括静态 Token 鉴权、动态 Token 鉴权和基于第三方回调的鉴权。您可以使用三种鉴权方式中的一种或多种,SDK 在登录时会告知云信服务器本次登录使用的鉴权方式。若该鉴权方法不在已开通的鉴权类型列表内,则会直接返回登录失败。

静态 Token 鉴权

本鉴权方法为云信默认鉴权方法,用户通过调用服务端 API(/user/create.action)注册云信 IM 账号(即accid)时需要手动设置或者自动生成 Token,该 Token 永久有效。

客户端 SDK 在登录云信服务器时需要填入accidtoken,云信服务器会校验accidtoken是否一致。

如果用户需要主动更新 Token,或者 Token 不慎泄露需要修改 Token,可以调用/user/update.action/user/refreshToken.action进行更新操作。

动态 Token 鉴权

  1. 在云信控制台创建应用,生成AppKeyAppSecret
  2. 基于AppKey、AppSecretaccid,参考如下示例生成 Token。
#先获取当前时间戳,单位毫秒
curTime = 1614764611561
#设置过期时间,单位秒,如600
ttl = 600
#生成signature,将appkey、accid、curTime、ttl、appsecret五个字段拼成一个字符串,进行sha1编码
signature = sha1(appkey + accid + curTime + ttl + appsecret)
#组装成json
json = {"signature": "xx", "curTime":1614764611561, "ttl": 600}
#将json转成字符串后进行base64编码,生成最终的token
token=base64(json)

  1. 使用上述方法生成 Token 后,客户端 SDK 将该 Token 填入并登录,服务器校验成功后即登录成功。
  • 上述动态 Token 的生成方法依赖AppSecret,因此生成逻辑务必在客户的服务器侧完成,以免AppSecret泄露。
  • 本鉴权方法的 Token 是动态且临时有效的,有效期由您自行设置,建议不要太长。

基于第三方回调的鉴权

本鉴权方法下,云信服务端将不校验token等字段。

  1. 云信控制台配置第三方回调地址和回调策略(回调失败后是否放行),详见开通和配置第三方回调

  2. 通过各端的 SDK 登录接口进行登录,调用登录接口时需将鉴权方式(authTypeauth_type_)设置为 2,即通过第三方回调鉴权。

    具体各端的登录接口,请参见各端的登录文档。

  3. 发起登录相关回调的请求。

    若未发起登录回调,且登录时选择的鉴权方式为通过第三方回调鉴权,则任意 Token 均可登录成功。


    在登录回调中,云信服务器会将开发者的accidtoken、客户端类型、客户端 IP、登录自定义扩展等字段抄送给开发者服务器,开发者服务器自行判断是否校验通过,若不通过,云信服务端会返回302错误码给客户端。

此文档是否对你有帮助?
有帮助
去反馈
  • 静态 Token 鉴权
  • 动态 Token 鉴权
  • 基于第三方回调的鉴权