账号集成与登录

更新时间: 2023/07/06 06:15:51

本文介绍账号集成与登录的技术原理和如何选择登录策略。

技术原理

IM 的登录与账号集成密切相关。上图展示了应用集成 NIM SDK 后,从账号集成到登录 IM 成功的主要流程:

  1. 用户在应用客户端注册用户账号时,由应用服务端向云信服务端发起创建 IM 账号的请求。
  2. IM 账号创建成功后,云信服务端会返回该 IM 账号(即accid)token等信息。此时,应用服务端需要负责保存accidtoken的映射关系。
  3. 应用客户端发起登录请求时,先走应用自有的登录验证逻辑,如账号和密码的验证
  4. 验证成功后,应用服务端将与该用户对应的accidtoken等信息返回给应用客户端。此时,应用客户端需要负责保存accidtoken的映射关系。
  5. 当应用客户端需要调用云信的 IM 服务时,需要先进行token验证,以登录 IM 服务
  6. token验证成功后,应用客户端登录 IM 服务成功。之后用户便可调用 NIM SDK 的相关接口使用 IM 服务,如进行 IM 消息收发
  • 终端用户使用云信 IM 服务时,应用本身的用户账号和云信的 IM 账号(accid彼此独立。云信的 IM 账号只用于云信 IM 服务的鉴权,IM 账号并不等同于应用的用户账号
  • 应用的用户账号和密码,与云信登录 IM 使用的 accidtoken 完全不一致。accidtoken 不由终端用户创建,而是由应用服务端分配,以保证安全性。

登录策略

登录策略指您的应用需要采用的一种或多种 IM 登录方式。

控制台配置

您可按需在云信控制台配置您的应用需要采用的登录策略(可多选)。如未选择相应的登录策略,可能导致用户调用登录接口时因无登录权限而报错(状态码:403)。

配置路径:在云信控制台首页应用管理选择应用,再进入产品功能 > IM 即时通讯 > 基础功能 > 登录策略

登录策略配置.png

  • 静态 token 登录:用户手动登录 IM 时需传入静态 token。静态 token 默认永久有效,且恒定不变,除非主动调用服务端 API刷新。
  • 动态 token 登录:用户手动登录 IM 时需传入动态 token。动态 token 具备时效性,适用于对于用户信息安全有较高要求的业务场景。
  • 通过第三方回调登录:用户手动登录 IM 时的鉴权工作由指定的第三方服务器(可以是应用服务器)进行,云信服务端不做 IM 登录鉴权。选择第三方回调后,请至第三方回调配置进行相关设置。

登录方式概览

NIM SDK 登录方式分为手动登录自动登录两大类。其中手动登录可进一步分为上述的静态 token 登录、动态 token 登录和通过第三方回调登录。

登录方式
子方式 鉴权方式 使用场景
手动登录 静态 Token 登录 静态 Token 鉴权 如下登录场景,用户需要手动登录 IM:
  • 在新设备上首次登录 IM
  • 被同时在线的其他设备踢下线后再次登录 IM
  • 切换 IM 账号后再次登录 IM
  • 注销登录后再次登录 IM
动态 Token 登录 动态 Token 鉴权
通过第三方回调登录 通过第三方回调鉴权
自动登录 继承手动登录的方式 继承手动登录的鉴权方式 应用被清理后,用户再次点击应用图标启动应用时,无需输入用户名和密码即可完成登录的场景。自动登录需在手动登录成功后使用

手动登录与自动登录主要区别在于:

差异点
说明
NIM SDK 是否接管登录失败后的处理
  • 手动登录:NIM SDK 认为手动登录即是终端用户发起登录的流程,因此在登录失败后(如网络情况不佳、密码错误),NIM SDK 会触发相应回调,并停止重连操作,等待用户再次发起登录操作
  • 自动登录:自动登录失败后仍旧尝试重连,直到登录成功为止(密码错误等情况除外)
云信服务端是否验证当前登录设备的安全性
  • 手动登录:不验证
  • 自动登录:自动登录时,如果当前登录设备不是上一次登录设备,云信服务端会自动禁止其登录,以保证安全性。

如您选择自动登录,当您的应用在后台被唤起时,会计算为1次登录行为,计入日活统计作为计费依据。

产品形态与登录方式

接入网易云信 IM 服务的产品大致分为两种形态:

产品形态 特征 例子
IM 产品 通讯为其核心模块 微信、易信、网络直播等
非 IM 产品 通讯为其附带模块 各种有私信模块的应用
  • 对于IM 产品,由于通讯能力是核心能力,如果云信无法登录成功则整个应用将无法正常表现,所以推荐在执行业务逻辑前,首先完成应用服务端和云信服务端的登录。只有应用服务端和云信服务端都登录成功才认为整个登录完成。

  • 对于非 IM 产品而言,通讯能力是可以在登录应用服务端成功后延迟加载,登录成功拿到服务端下发的云信 IM 账号和 token 后进行自动登录即可。

此文档是否对你有帮助?
有帮助
去反馈
  • 技术原理
  • 登录策略
  • 控制台配置
  • 登录方式概览
  • 产品形态与登录方式