D黑奴背锅 文档中心
鉴权

OAuth 2.0

使用 Authorization Code 流程接入用户登录与用户信息授权。

OAuth 2.0 适用于需要用户身份的接入场景。授权码必须由应用服务端换取 Token,Client Secret 不得进入浏览器或客户端。

接口地址

用途方法地址
发起授权GEThttps://api.dibinos.cn/oauth/authorize
换取或刷新 TokenPOSThttps://api.dibinos.cn/oauth/token
获取用户信息GEThttps://api.dibinos.cn/oauth/userinfo
OIDC 发现文档GEThttps://api.dibinos.cn/oauth/.well-known/openid-configuration

1. 发起授权

GET https://api.dibinos.cn/oauth/authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI&scope=openid%20profile%20email&state=STATE
参数必填说明
response_type固定为 code
client_id应用 Client ID。
redirect_uri必须与应用配置一致。
scope推荐 openid profile email;需要刷新 Token 时追加 offline_access
state随机字符串,回调后必须校验。

2. 处理回调

授权完成后,平台跳转到:

GET REDIRECT_URI?code=AUTH_CODE&state=STATE

服务端必须先校验 state,再使用 code 换取 Token。授权码只能使用一次。

3. 换取 Token

curl -X POST https://api.dibinos.cn/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -u "CLIENT_ID:CLIENT_SECRET" \
  -d "grant_type=authorization_code" \
  -d "code=AUTH_CODE" \
  -d "redirect_uri=REDIRECT_URI"

成功响应包含 access_tokentoken_typeexpires_in;可能包含 id_token。当授权 scope 包含 offline_access 时,还会返回 refresh_token

4. 刷新 Token

curl -X POST https://api.dibinos.cn/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -u "CLIENT_ID:CLIENT_SECRET" \
  -d "grant_type=refresh_token" \
  -d "refresh_token=REFRESH_TOKEN"

5. 获取用户信息

curl https://api.dibinos.cn/oauth/userinfo \
  -H "Authorization: Bearer ACCESS_TOKEN"

安全要求

  • 必须生成并校验 state,防止跨站请求伪造。
  • Client Secret 只能保存在服务端。
  • redirect_uri 必须与授权请求和应用配置完全一致。
  • 只申请业务实际需要的 scope。

On this page