@elibinary
2016-10-21T02:22:38.000000Z
字数 1414
阅读 1426
doc
关于 OAuth 2.0 协议规范,请参考 OAuth 2.0 。
OAuth 2.0 的流程大致可以简单概括为以下四步:
GET /oauth/auth
| 参数名 | 必填 | 说明 |
|---|---|---|
| client_id | 是 | 应用的唯一标识 |
| redirect_uri | 是 | 用户授权完成后的回调地址,应用可以通过此回调地址获得用户的授权结果。此地址必须与在应用注册时填写的回调地址一致! |
| scope | 否 | 此处为默认值 |
| state | 否 | 表示客户端的当前状态,可以指定任意值,认证服务器授权完成回调时会附加此参数 |
请求示例:
https://boohee.host.example/oauth/auth?client_id=6c10ef8b98c158825abd&redirect_uri=https://example.host/callback
https://example.host/callback?code=9b73a4248
POST /oauth/access_token
| 参数名 | 必填 | 说明 |
|---|---|---|
| client_id | 是 | 应用的唯一标识 |
| client_secret | 是 | 应用的唯一标识 |
| redirect_uri | 是 | 用户授权完成后的回调地址,应用可以通过此回调地址获得用户的授权结果。此地址必须与在应用注册时填写的回调地址一致! |
| grant_type | 是 | 可选类型: authorization_code, refresh_token |
| code | 是 | 根据 grant_type 的类型,如果 grant_type 为 authorization_code ,则此处为上一步中获得的 authorization_code ,如果 grant_type 为 refresh_token ,则此处为 refresh_token |
请求示例:
https://boohee.host.example/oauth/access_token?client_id=6c10ef8b98c158825abd&client_secret=78c99ad30629fea48c1ed333&redirect_uri=https://example.host/callback&grant_type=authorization_code&code=a8c04313b31a2806
{"access_token": "652d85781d9f3668f33b604f45696750","token_expired_at": "2016-10-21T10:19","refresh_token": "acd8578ss2dfe23g5643b604f456sf75ge0"}