用户认证
文档概述
本文档主要描述 APP 接入 SUD OP 认证的完整流程,包括各参与方的交互步骤、接口调用说明及核心字段定义,帮助开发者快速完成 SUD OP 认证的接入开发。
参与方说明
- APP: 应用客户端
- SUD OP: 集成在客户端内的通信中间件
- Game: 游戏客户端
- Game SVR: 游戏的服务端
- SUD OP SVR: SUD 的服务端(核心凭证流转与校验中枢)
- APP SVR: 应用的服务端
认证流程详情
整体流程时序
步骤拆解
步骤1:APP 向自有服务端生成用户签名
- 调用方向:APP → APP SVR
- 接口名称:generateUserSignature
- 请求参数:APP's Login Token(APP 自身登录态的 Token,用于服务端校验用户身份)
- 响应参数:userSignature(用户签名,用于后续向 SUD OP 发起认证)
- 核心说明:此步骤由接入方自有服务端完成签名生成,需保证签名的唯一性和安全性,签名需能标识用户身份且防篡改。
步骤2:APP 向 SUD OP 发起认证请求
- 调用方向:APP → SUD OP
- 接口名称:auth
- 请求参数:userSignature(步骤1生成的用户签名)
- 核心说明:APP 携带合法的用户签名,向 SUD OP 客户端服务发起认证申请。
步骤3:SUD OP 向 SUD 服务端校验用户身份
- 调用方向:SUD OP → SUD SVR
- 接口名称:authAppUser
- 请求参数:userSignature(APP 传入的用户签名)
- 核心说明:SUD OP 客户端将用户签名透传给 SUD 服务端,由服务端完成签名的合法性校验。
步骤4:SUD 服务端生成认证凭证
SUD SVR 在校验 userSignature 合法后,执行以下操作:
- 基于 userSignature 生成
userToken(用户在 SUD 体系的身份凭证); - 基于 userSignature 生成
AppUnionID(用户在 SUD 体系的唯一标识); - 生成
refreshToken(用于刷新 userToken)和expiresIn(userToken 过期时间,单位:秒)。
步骤5:SUD 服务端返回认证凭证给 SUD OP
- 调用方向:SUD SVR → SUD OP
- 响应参数:userToken、refreshToken、expiresIn
步骤6:SUD OP 返回认证结果给 APP
- 调用方向:SUD OP → APP
- 响应结果:
- SUCCESS:认证通过(底层已获取到 userToken 等凭证);
- FAILED:认证失败(签名不合法/过期等)。
核心字段说明
| 字段名 | 类型 | 说明 |
|---|---|---|
| APP's Login Token | String | APP 自身登录体系的用户 Token,用于 APP SVR 校验用户身份 |
| userSignature | String | APP SVR 生成的用户签名,需具备唯一性和防篡改性 |
| userToken | String | SUD 体系的用户身份凭证,用于后续访问 SUD 相关服务 |
| refreshToken | String | 用于刷新过期的 userToken |
| expiresIn | Int | userToken 的过期时间(单位:秒) |
| AppUnionID | String | 用户在 SUD 体系中的唯一标识,可用于跨应用关联用户 |
异常处理说明
- 若步骤1中 APP SVR 校验 Login Token 失败,需返回错误给 APP,终止认证流程;
- 若步骤3中 SUD SVR 校验 userSignature 不合法(如签名过期、签名伪造),SUD OP 向 APP 返回 FAILED;
- 若网络异常导致某一步骤请求超时,建议 APP 增加重试机制(需注意重试次数,避免频繁请求)。
接入注意事项
- userSignature 的生成规则需由 APP 侧自定义,建议采用「非对称加密+时间戳+随机串」的方式,提升安全性;
- userToken 为敏感凭证,APP 需加密存储,避免明文传输和存储;
- 需监听 userToken 的过期状态,在过期前通过 refreshToken 调用 SUD 接口刷新 Token;
- 所有接口调用建议使用 HTTPS 协议,防止数据被篡改或窃取。