Skip to main content

功能说明

连接回调用于在客户端发起 WebSocket 连接时,由业务服务器参与登录放行校验。
IM 服务端会在连接建立前回调业务服务器,业务服务器返回 pass 时允许连接,否则拒绝连接。

请求说明

推送鉴权:接口需要校验 Header,请查看 鉴权说明

执行时机:该回调在连接鉴权流程中执行,业务服务器响应耗时会直接影响连接速度。

判定规则:业务服务器响应 HTTP 200 且 result=pass(不区分大小写)时放行,其它情况都视为拒绝。

参数数据类型是否必填参数说明
appkeystring应用 appkey
noncestring随机字符串
timestampstring毫秒时间戳
signaturestring签名,计算规则:sha1(app_secret + nonce + timestamp)
Content-Typestring固定为 application/json

请求参数

参数数据类型是否必填参数说明
user_idstring连接用户 id(由 token 解析得到)
connect_timeint64连接时间(毫秒时间戳)
sdk_versionstring客户端 SDK 版本,对应连接请求 Header x-version
platformstring平台标识,对应连接请求 Header x-platform
devicestring设备信息,对应连接请求 Header x-device
device_idstring设备 id,对应连接请求 Header x-deviceid
client_ipstring客户端 IP,对应连接请求 Header x-clientip,为空时使用请求来源地址
extobject扩展 Header 集合,除 x-version/x-platform/x-device/x-deviceid/x-clientip 外的其它 Header 都会放入该字段

请求示例

POST /apigateway/webhooks/connect/login HTTP/1.1
appkey: appkey
signature: 2e639ae3600a4sdff61fb88b76f485b
nonce: nonce
timestamp: 1672568121910
Content-Type: application/json

{
"user_id": "u_1001",
"connect_time": 1713600000000,
"sdk_version": "1.2.0",
"platform": "Web",
"device": "Chrome",
"device_id": "browser-uuid-001",
"client_ip": "127.0.0.1",
"ext": {
"x-appkey": "appkey",
"x-token": "xxx.yyy.zzz",
"origin": "https://example.com"
}
}

响应示例

{
"result": "pass"
}

响应参数

参数数据类型是否必填参数说明
resultstring连接回调结果。pass 表示允许连接,其他任意值都表示拒绝连接