OAuth API 参考
UserMatrix OAuth 2.0 接口完整端点说明。
基础信息
- API 基地址:
https://um.yunjii.cn/php - 协议:HTTPS(强制)
- 数据格式:JSON
- 签名方式:MD5(字典序 + appkey)
- timestamp 有效期:5 分钟
端点列表
1. 生成登录跳转 URL
GET /connect.php?act=login
参数
| 参数 | 必填 | 说明 |
|---|---|---|
| appid | 是 | 应用 ID |
| type | 是 | 登录类型:wx / alipay / qq / douyin / self |
| redirect_uri | 是 | 回调地址(需与 um_apps.url 匹配) |
| state | 否 | 防 CSRF,原样返回 |
| timestamp | 是 | 当前时间戳(秒) |
| sign | 是 | MD5 签名 |
响应
{
"code": 1,
"msg": "success",
"data": {
"url": "https://open.weixin.qq.com/connect/qrconnect?appid=...&state=..."
}
}
2. code 换取用户信息(回调)
GET /connect.php?act=callback
参数
| 参数 | 必填 | 说明 |
|---|---|---|
| appid | 是 | 应用 ID |
| code | 是 | OAuth 回调 code(5 分钟有效) |
| timestamp | 是 | 时间戳 |
| sign | 是 | 签名 |
响应
{
"code": 1,
"msg": "success",
"data": {
"openid": "oXabc123...",
"nickname": "张三",
"avatar": "https://thirdwx.qlogo.cn/...",
"social_uid": "um_a1b2c3d4e5f6",
"login_type": "wx",
"token": "um_token_xxx..."
}
}
code 5 分钟内只能消费一次,重复消费返回 40163。这是防重放机制。
3. social_uid 二次查询
GET /connect.php?act=query
参数
| 参数 | 必填 | 说明 |
|---|---|---|
| appid | 是 | 应用 ID |
| type | 是 | 登录类型 |
| social_uid | 是 | 用户的 UMID |
| timestamp | 是 | 时间戳 |
| sign | 是 | 签名 |
响应:与 callback 一致(不含 token,需重新登录获取 token)。
4. SSO 状态检查
GET /connect.php?act=check_sso
检查当前用户在其他应用的 SSO 登录状态(基于 um_sso_token cookie 跨子域共享)。
参数
| 参数 | 必填 | 说明 |
|---|---|---|
| appid | 是 | 应用 ID |
| timestamp | 是 | 时间戳 |
| sign | 是 | 签名 |
响应
{
"code": 1,
"data": {
"logged_in": true,
"user": {
"openid": "um_a1b2c3...",
"nickname": "张三"
},
"sso_source": "sl.yunjii.cn" // 来源应用
}
}
5. Token 验证
GET /check_token.php
参数
| 参数 | 必填 | 说明 |
|---|---|---|
| token | 是 | 用户 token |
| appid | 是 | 应用 ID(用于 scope 校验) |
响应
{
"code": 1,
"data": {
"user_id": 12345,
"openid": "um_a1b2c3...",
"scope": "app", // app / group / global
"scope_type": "app",
"device_id": "device_xxx",
"login_ip": "1.2.3.4",
"expire_at": "2026-07-13 12:00:00"
}
}
限流规则
- IP 限流:单 IP 60 次/分钟
- 登录失败:单 IP 5 分钟内失败 10 次锁定 15 分钟
- code 消费:单 code 只能消费一次
- SaaS 套餐:按套餐月调用额度(5 万/无限)
HTTP 状态码
| HTTP | 含义 |
|---|---|
| 200 | 请求成功(业务 code 可能非 1) |
| 400 | 参数错误 |
| 401 | 鉴权失败 |
| 403 | 权限不足 |
| 404 | 资源不存在 |
| 429 | 限流 |
| 500 | 服务器错误 |
完整错误码见 错误码参考。