IM 即时通讯
服务端
服务端集成新手指南
接口及业务限制
更新日志
平台服务
第三方回调
第三方回调概述
消息相关回调
用户信息相关回调
高级群相关回调
超大群相关回调
聊天室相关回调
音视频1.0相关回调
登录相关回调
圈组相关回调
消息抄送
消息抄送服务概述
开通消息抄送
IM会话相关抄送
IM 会话已读数据抄送
IM其他抄送
圈组相关抄送
音视频和白板相关抄送
安全通
安全通概述
开通 IM 安全通
最佳实践
聊天室重要消息投递
IM 平滑迁移方案
API 参考
API调用方式
状态码
云信 IM 账号管理
注册云信IM账号
刷新Token
封禁账号
账号全局禁言
设置移动端是否需要推送(桌面端在线时)
登录鉴权
消息功能
发送消息
发送单聊已读回执
发送群聊已读回执
消息撤回
发送广播消息
文件上传
删除单条消息
删除漫游消息
历史消息与记录
云端历史消息查询
广播消息查询
IM 登录/登出记录查询
自定义系统通知
用户名片
用户关系管理
好友关系管理
黑名单/静音管理
群组
高级群
创建高级群
拉人入群
发送群消息
添加管理员
移除管理员
转让群主
禁言群组
禁言指定群成员
踢人出群
主动退群
修改群昵称
修改群组信息
设置群消息提醒开关
解散群组
获取群组详细信息
获取群组禁言列表
获取群消息已读未读详情
获取用户已加入的群组信息
获取用户已加入的群组的所有群成员信息
获取群组的在线成员列表
批量获取群组信息与成员列表
批量获取群组的在线成员数量
超大群
创建超大群
拉人入群
发送超大群消息
发送超大群自定义系统通知
撤回超大群消息
添加管理员
移除管理员
转让群主
禁言超大群
禁言指定超大群成员
踢人出群
主动退群
修改超大群昵称
修改超大群信息
修改超大群成员信息
解散超大群
修改超大群人数级别
获取超大群信息
获取超大群成员信息
获取超大群禁言成员信息
获取已加入的超大群信息
查询超大群云端历史消息
聊天室
创建聊天室
获取聊天室地址
更新聊天室信息
查询聊天室信息
开放/关闭聊天室
查询开放状态的聊天室
设置聊天室定时关闭
开启/关闭进出聊天室事件通知
管理聊天室用户角色
获取聊天室成员列表
聊天室消息管理
发送聊天室消息
批量发送聊天室消息
撤回聊天室消息
发送聊天室定向消息
批量发送聊天室定向消息
发送聊天室全服广播消息
管理聊天室机器人
聊天室禁言
聊天室标签
管理聊天室队列
管理聊天室队列元素
圈组
获取圈组连接地址
服务器相关
创建服务器
修改服务器信息
删除服务器
批量查询服务器信息
分页查询服务器列表
服务器成员相关
邀请服务器成员
接受邀请
拒绝邀请
申请加入服务器
接受申请
拒绝申请
生成邀请码
通过邀请码加入
踢出成员
主动退出服务器
修改自己的成员信息
修改他人的成员信息
分页查询服务器成员列表
批量查询服务器成员信息
查询服务器的申请和邀请记录
查询个人的申请和邀请记录
更新成员封禁状态
分页查询封禁成员列表
频道相关
创建频道
修改频道基础信息
修改频道分组相关信息
删除频道
分页查询频道列表
批量查询频道信息
分页查询频道成员列表
修改频道黑白名单成员
修改频道黑白名单身份组
分页查询频道黑白名单成员列表
分页查询频道黑白名单身份组列表
批量查询频道黑白名单成员
批量查询频道黑白名单身份组
频道分组相关
身份组相关
服务器身份组
身份组成员管理
频道身份组
频道用户定制权限
频道分组身份组
频道分组用户定制权限
身份组自定义权限项
查询用户拥有的权限
圈组消息相关
发送消息
更新消息
查询云端历史消息
查询 Thread 聊天历史
批量查询Thread聊天meta 信息
更新快捷评论
查询快捷评论
查询@某人的未读消息
系统通知相关
圈组系统通知概述
发送自定义系统通知
更新自定义系统通知
搜索结果自定义排序
修改服务器自定义排序值
修改频道自定义排序值
在线状态订阅
文本翻译
推送payload配置

登录鉴权

更新时间: 2023/01/12 14:07:39

网易云信提供三种登录鉴权的方式,包括静态 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. 在控制台选择应用,再进入IM 免费版/专业版 > 功能配置 > 第三方回调,并配置回调地址和回调策略(回调失败后是否放行)。

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

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

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

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


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

此文档是否对你有帮助?
有帮助
我要吐槽
  • 静态Token鉴权
  • 动态Token鉴权
  • 基于第三方回调的鉴权