账号集成与登录
更新时间: 2024/08/27 16:02:20
本文介绍账号集成与登录的技术原理和如何选择登录策略。
技术原理
IM 的登录与账号集成密切相关。上图展示了应用集成 NIM SDK 后,从账号集成到登录 IM 成功的主要流程:
- 用户在应用客户端注册用户账号时,由应用服务端向云信服务端发起创建 IM 账号的请求。
- IM 账号创建成功后,云信服务端会返回该 IM 账号(即
accid)
和token
等信息。此时,应用服务端需要负责保存accid
和token
的映射关系。 - 应用客户端发起登录请求时,先走应用自有的登录验证逻辑,如账号和密码的验证
- 验证成功后,应用服务端将与该用户对应的
accid
和token
等信息返回给应用客户端。此时,应用客户端需要负责保存accid
和token
的映射关系。 - 当应用客户端需要调用云信的 IM 服务时,需要先进行
token
验证,以登录 IM 服务 token
验证成功后,应用客户端登录 IM 服务成功。之后用户便可调用 NIM SDK 的相关接口使用 IM 服务,如进行 IM 消息收发
- 终端用户使用云信 IM 服务时,应用本身的用户账号和云信的 IM 账号(
accid
)彼此独立。云信的 IM 账号只用于云信 IM 服务的鉴权,IM 账号并不等同于应用的用户账号。 - 应用的用户账号和密码,与云信登录 IM 使用的
accid
和token
完全不一致。accid
和token
不由终端用户创建,而是由应用服务端分配,以保证安全性。
登录策略
登录策略指您的应用需要采用的一种或多种 IM 登录方式。
控制台配置
您可按需在云信控制台配置您的应用需要采用的登录策略(可多选)。如未选择相应的登录策略,可能导致用户调用登录接口时因无登录权限而报错(状态码:403)。
配置路径:在云信控制台首页应用管理选择应用,再进入产品功能 > IM 即时通讯 > 基础功能 > 登录策略
- 静态 token 登录:用户手动登录 IM 时需传入静态 token。静态 token 默认永久有效,且恒定不变,除非主动调用服务端 API刷新。
- 动态 token 登录:用户手动登录 IM 时需传入动态 token。动态 token 具备时效性,适用于对于用户信息安全有较高要求的业务场景。
- 通过第三方回调登录:用户手动登录 IM 时的鉴权工作由指定的第三方服务器(可以是应用服务器)进行,云信服务端不做 IM 登录鉴权。选择第三方回调后,请至第三方回调配置进行相关设置。
登录方式概览
NIM SDK 登录方式分为手动登录和自动登录两大类。其中手动登录可进一步分为上述的静态 token 登录、动态 token 登录和通过第三方回调登录。
登录方式 |
子方式 | 鉴权方式 | 使用场景 |
---|---|---|---|
手动登录 | 静态 Token 登录 | 静态 Token 鉴权 | 如下登录场景,用户需要手动登录 IM:
|
动态 Token 登录 | 动态 Token 鉴权 | ||
通过第三方回调登录 | 通过第三方回调鉴权 | ||
自动登录 | 继承手动登录的方式 | 继承手动登录的鉴权方式 | 应用被清理后,用户再次点击应用图标启动应用时,无需输入用户名和密码即可完成登录的场景。自动登录需在手动登录成功后使用 |
手动登录与自动登录主要区别在于:
差异点 |
说明 |
---|---|
NIM SDK 是否接管登录失败后的处理 |
|
云信服务端是否验证当前登录设备的安全性 |
|
如您选择自动登录,当您的应用在后台被唤起时,会计算为1次登录行为,计入日活统计作为计费依据。
产品形态与登录方式
接入网易云信 IM 服务的产品大致分为两种形态:
产品形态 | 特征 | 例子 |
---|---|---|
IM 产品 | 通讯为其核心模块 | 微信、易信、网络直播等 |
非 IM 产品 | 通讯为其附带模块 | 各种有私信模块的应用 |
-
对于IM 产品,由于通讯能力是核心能力,如果云信无法登录成功则整个应用将无法正常表现,所以推荐在执行业务逻辑前,首先完成应用服务端和云信服务端的登录。只有应用服务端和云信服务端都登录成功才认为整个登录完成。
-
对于非 IM 产品而言,通讯能力是可以在登录应用服务端成功后延迟加载,登录成功拿到服务端下发的云信 IM 账号和
token
后进行自动登录即可。
此文档是否对你有帮助?