Skip to content

Latest commit

 

History

History
113 lines (75 loc) · 3 KB

access_token.md

File metadata and controls

113 lines (75 loc) · 3 KB

Access Token 简介

我们使用 OAuth2 协议做权限验证,所以在您使用使用接口之前需要先申请 client_idclient_secret

注: 目前尚未开放申请,如需开发客户端,请联系 nauxliu@gmail.com !

在访问其他接口之前,你需要先获取 access_token,可通过两种授权方式获取。

  • client_credentials
  • login_token

下面我们将分别介绍这两种授权方式.

client_credentials 认证

仅需要 client_idclient_secret 即可,无需用户身份。此认证方式获得的 access_token 拥有大部分接口的读取权限。

接口地址 https://api.phphub.org/v1/oauth/access_token

POST 参数

| key | 传入 | |---|---|---| | grant_type | client_credentials | client_id | 申请 client_id | | client_secret |申请的 client_secret |

返回样例

{
  "access_token": "fnpi7B4wA4ZzTxkvjCnCESUyf6yPl7PXNgxZVne9",
  "token_type": "Bearer",
  "expires_in": 3600
}

返回字段说明

| 字段 | 说明 | |---|---|---| | access_token | 成功获取到的 access_token | token_type | token 类型(始终为 Bearer) | expires_in | token 有效期,单位为秒

login_token 认证

需要 client_idclient_secret用户身份 来获取,获取到的 access_token 拥有几乎所有接口的访问与写入权限。

扫描用户的登陆二维码(用户个人主页),解析后会获得用于登陆的 usernamelogin_token

数据的格式为 {username},{login_token}

login_koken长度为 20 - 32 个字符,例:

nauxliu,nWKEYFZ2wmSikRMjJ2Vl

然后使用 usernamelogin_token 获取 access_token

接口地址 https://api.phphub.org/v1/oauth/access_token

POST 参数

| key | 传入 | |---|---|---| | grant_type | login_token | | client_id | 申请 client_id | | client_secret | 申请的 client_secret | | username | 扫描获取的 username | | login_token | 扫描获取的 login_token |

返回

{
  "access_token": "A0nVbVy9waLf2v7Tr8npQZRd7SYw0Z4WPJkL8VFm",
  "token_type": "Bearer",
  "expires_in": 31536000,
  "refresh_token": "x1txmTcWP4l81BEbmlPdeOZWETvze13rBrDOzTmG"
}

返回字段说明

| 字段 | 说明 | |---|---|---| | access_token | 成功获取到的 access_token | token_type | token 类型(始终为 Bearer) | expires_in | token 有效期,单位为秒 | refresh_token | 可用来获取新的 access_token

刷新 access token

通过上面的返回数据可以看到,通过 login_token 认证方式获取 access_token的时候接口会同时返回 refresh_token
access_token 过期后,通过刷新机制,无需再次扫码即可再获得一个包含用户身份的 access_token

接口地址 https://api.phphub.org/v1/oauth/access_token

POST 参数

| key | 传入 | |---|---|---| | grant_type | refresh_token | | client_id | 申请 client_id | | client_secret | 申请的 client_secret | | refresh_token | 上次请求返回的 refresh_token |