Access Token 简介

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

注: 目前尚未开放申请,如需开发客户端,请联系 [email protected] !

在访问其他接口之前,你需要先获取 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