OAuth 2.0 聚合登录
完整的 OAuth 2.0 流程,支持微信/支付宝/QQ/抖音/自有站统一接入。
OAuth 2.0 流程
- 接入方应用调用
login(appid, type)生成跳转 URL - UserMatrix 返回跳转 URL
- 用户重定向到第三方平台
- 用户扫码/授权,第三方回调带
code - 接入方调用
callback(code)换取用户信息 - UM 内部 5 分钟防重缓存
端点
login - 生成跳转 URL
GET /connect.php?act=login
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| appid | string | 是 | 应用 ID |
| appkey | string | 是 | 应用密钥 |
| type | string | 是 | 平台类型:wx/alipay/qq/douyin |
| redirect_uri | string | 是 | 回调地址 |
| state | string | 是 | 防 CSRF,原样返回 |
| timestamp | string | 是 | Unix 时间戳,5 分钟有效 |
| sign | string | 是 | MD5 签名 |
callback - code 换取用户信息
GET /connect.php?act=callback
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| appid | string | 是 | 应用 ID |
| code | string | 是 | 授权 code |
| appkey | string | 是 | 应用密钥 |
响应:
{
"code": 0,
"msg": "success",
"data": {
"openid": "oX...",
"nickname": "张三",
"avatar": "https://...",
"social_uid": "um_abc123"
}
}
query - 二次查询
GET /connect.php?act=query&type=wx&social_uid=um_abc123
5 分钟 code 缓存
UM 独家防护:同一 code 在 5 分钟内只能成功消费一次,杜绝 40163 重复消费错误。
错误码
| errcode | 含义 |
|---|---|
| 101 | 缺少参数 |
| 102 | 应用不存在 |
| 106 | 签名错误 |
| 301 | OAuth 错误 |
| 105 | timestamp 过期 |