快速接入指南
本指南将帮助您在最短时间内完成墨觉互联 OAuth2 授权接入。按照以下三个步骤操作即可。
前提条件:您需要先注册墨觉互联账号,并在控制台创建应用,等待管理员审核通过后获取 AppID 和 AppSecret。
第一步:引导用户授权
在您的应用中,将"使用墨觉账号登录"按钮链接到以下授权地址:
http://auth.mojue88.com/oauth/authorize.php?client_id=YOUR_APP_ID&redirect_uri=YOUR_CALLBACK_URL&response_type=code&state=RANDOM_STRING&scope=basic
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
| client_id | 是 | 应用的 AppID |
| redirect_uri | 是 | 授权回调地址,必须与应用配置的回调地址前缀匹配 |
| response_type | 是 | 固定值:code |
| state | 推荐 | 随机字符串,用于防止CSRF攻击,回调时原样返回 |
| scope | 否 | 授权范围,可选值:basic(默认)、basic+email、profile |
用户访问该地址后,将看到墨觉互联的授权页面。用户登录并同意授权后,页面将重定向到您的 redirect_uri,并在URL中携带授权码:
YOUR_CALLBACK_URL?code=AUTHORIZATION_CODE&state=RANDOM_STRING
如果用户拒绝授权,将重定向到:
YOUR_CALLBACK_URL?error=access_denied&state=RANDOM_STRING
第二步:换取访问令牌
在您的服务端(注意:必须在服务端执行,不能暴露 AppSecret),使用上一步获取的授权码 code 换取 access_token。
请求地址
POST http://auth.mojue88.com/oauth/token.php
请求参数(application/x-www-form-urlencoded)
| 参数 | 必填 | 说明 |
|---|---|---|
| grant_type | 是 | 固定值:authorization_code |
| client_id | 是 | 应用的 AppID |
| client_secret | 是 | 应用的 AppSecret |
| code | 是 | 上一步获取的授权码 |
| redirect_uri | 是 | 必须与授权时的 redirect_uri 一致 |
返回示例
{
"access_token": "at_xxxxxxxxxxxxxxxxxxxx",
"token_type": "Bearer",
"expires_in": 7200,
"refresh_token": "rt_xxxxxxxxxxxxxxxxxxxx",
"scope": "basic",
"openid": "uid_1_xxxxxxxxxxxxxxxx"
}
第三步:获取用户信息
使用上一步获取的 access_token 调用用户信息接口。
请求地址
GET http://auth.mojue88.com/oauth/userinfo.php
请求方式
在 HTTP Header 中携带 access_token:
Authorization: Bearer ACCESS_TOKEN
也可以通过 GET 参数传递(不推荐):
GET /oauth/userinfo.php?access_token=ACCESS_TOKEN
返回示例(scope=basic)
{
"openid": "uid_1_xxxxxxxxxxxxxxxx",
"username": "zhangsan",
"nickname": "张三",
"avatar": "https://example.com/avatar.png"
}
如果 scope 包含 email,返回中会额外包含 email 字段;如果 scope 为 profile,还会包含 bio 和 registered_at 字段。
刷新令牌
当 access_token 过期后,可以使用 refresh_token 刷新获取新的令牌,无需用户重新授权。
POST http://auth.mojue88.com/oauth/token.php
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token&client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&refresh_token=YOUR_REFRESH_TOKEN
注意:refresh_token 有效期为30天,使用后旧的 refresh_token 会失效,返回新的 refresh_token。请妥善保存最新的 refresh_token。
完整流程图
+--------+ +---------------+
| |--(1)- 授权请求 ---------------->| |
| 应用 | | 墨觉互联 |
| |<-(2)- 重定向带code -----------| 授权服务器 |
| | | |
| |--(3)- code + secret 换token ->| |
| |<-(4)- access_token -----------| |
| | | |
| |--(5)- access_token 获取用户 ->| |
| |<-(6)- 用户信息 ----------------| |
+--------+ +---------------+