功能说明
连接回调用于在客户端发起 WebSocket 连接时,由业务服务器参与登录放行校验。
IM 服务端会在连接建立前回调业务服务器,业务服务器返回 pass 时允许连接,否则拒绝连接。
请求说明
推送鉴权:接口需要校验 Header,请查看 鉴权说明
执行时机:该回调在连接鉴权流程中执行,业务服务器响应耗时会直接影响连接速度。
判定规则:业务服务器响应 HTTP 200 且
result=pass(不区分大小写)时放行,其它情况都视为拒绝。
请求 Header
| 参数 | 数据类型 | 是否必填 | 参数说明 | |
|---|---|---|---|---|
| appkey | string | 是 | 应用 appkey | |
| nonce | string | 是 | 随机字符串 | |
| timestamp | string | 是 | 毫秒时间戳 | |
| signature | string | 是 | 签名,计算规则:sha1(app_secret + nonce + timestamp) | |
| Content-Type | string | 是 | 固定为 application/json |
请求参数
| 参数 | 数据类型 | 是否必填 | 参数说明 | |
|---|---|---|---|---|
| user_id | string | 是 | 连接用户 id(由 token 解析得到) | |
| connect_time | int64 | 是 | 连接时间(毫秒时间戳) | |
| sdk_version | string | 否 | 客户端 SDK 版本,对应连接请求 Header x-version | |
| platform | string | 否 | 平台标识,对应连接请求 Header x-platform | |
| device | string | 否 | 设备信息,对应连接请求 Header x-device | |
| device_id | string | 否 | 设备 id,对应连接请求 Header x-deviceid | |
| client_ip | string | 否 | 客户端 IP,对应连接请求 Header x-clientip,为空时使用请求来源地址 | |
| ext | object | 否 | 扩展 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"
}
响应参数
| 参数 | 数据类型 | 是否必填 | 参数说明 | |
|---|---|---|---|---|
| result | string | 是 | 连接回调结果。pass 表示允许连接,其他任意值都表示拒绝连接 |