全部产品
云市场
云游戏

用户一致性验证

更新时间:2020-09-07 18:12:53

某些业务场景对同步的数据有很高的安全性要求,为了确保推送的目标用户就是当前登录的用户而没有被伪造,需要进行用户一致性验证。而数据同步服务就提供了这样的高级功能,供用户开启使用。其基本原理是:

  • 客户端在连接到服务器端时,上报用户标识(userId)和授权 token(sessionId)。userId 和 sessionId 都是用户登录系统返回的数据,当 userId 和 sessionId 变化时,需要调用相关接口才能保证长连接的建立正确。
  • 服务器端可以调用一个由租户实现的一致性验证接口,通过这个接口,由租户来控制是否一致。数据同步服务会记录下是否一致的标识。
  • 对于高安全要求的同步配置,租户可以开启一致性验证,数据只会推送到通过一致性验证的用户设备上。对于未开启一致性验证的同步配置,则会忽略一致性验证结果。

配置一致性验证接口

下文介绍如何配置一致性验证接口 com.antcloud.session.validate,并对该接口进行说明。

注意,通过 mPaaS 控制台配置完一致性验证接口后,需要关闭该 RPC 接口的 签名验证 功能,否则移动同步的一致性校验逻辑会无法正常工作。

操作入口

登录 mPaaS 控制台后,选择目标应用,进入 移动网关 > API 管理 页面,添加 API,详情参见 移动网关 > API 管理

接口名称

添加 API 的 operationType 必须为 com.antcloud.session.validate。请求参数配置如下:

名称 类型及长度要求 是否必须 示例 描述
instanceId String workspaceId_appId 的字符串。
userId String 20880939 用户 ID。
sessionId String 客户端携带的授权 token。

返回参数

实现一个一致性检验逻辑,需要返回数据格式为 JSON 格式,示例如下:

  1. {
  2. "response": {
  3. "resultCode": "OK",
  4. "resultMsg": "Operation is done successfuly",
  5. "success": "true",
  6. "result": {
  7. "sid": "kkdddd",
  8. "valid":"true/false",
  9. }
  10. }
  11. }

各属性含义解释:

名称 类型 示例 描述
success boolean true/false 业务调用是否成功,成功返回 true,失败返回 false。失败的情况下,通过 returnCode 查看失败原因,可参考下方的 业务结果码
returnCode String ERROR 结果码。
resultMsg String SYSTEM-ERROR 结果信息。
sid String kkdddd 授权 token,或者 sessionId。
valid boolean true/false 验证结果。

业务结果码

结果 结果码 含义
true OK 业务成功。
false OPERATION_ERROR OPERATION 错误, 只处理 com.antcloud.session.validate 接口。