用户一致性验证

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

  • 客户端在连接到服务器端时,上报用户标识(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

instancedemo

workspaceId_appId 的字符串。

userId

String

20880939

用户 ID。

sessionId

String

kkdddd

客户端携带的授权 token。

返回参数

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

{
        "resultCode": "OK",
        "resultMsg": "Operation is done successfully",
        "success": true,
        "result": { 
            "sid": "kkdddd",
            "valid":true/false
        } 
}

各属性含义解释:

名称

类型

示例

描述

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 接口。