Base API支持业界采用的标准OAuth 2.0协议

我们允许您通过以下四种流程之一使用OAuth 2.0:

  • 授权代码授予-如果你想授权一个web应用程序,使用它。

  • 隐式授予-如果您想授权用户代理,如桌面或移动应用程序,请使用它。

  • 资源所有者密码凭据授予-如果您想使用资源所有者的密码凭据直接通过基础API进行身份验证,请使用它。

  • 刷新令牌授予—当访问令牌过期时,使用该命令更新访问令牌。


检索授权授予

             
得到/oauth2/授权

检索授权授权。OAuth 2.0支持两种授权流程:

没有直接的返回值。当资源所有者授予对客户端应用程序的访问权限时,Base重定向回重定向URI -redirect_uri类指定的类型的授权授予response_type,在查询或URI片段中。

授权码流

如果你遵循授权码流重定向URI将包含以下查询参数:

参数 描述
代码 一个授权码,可以用来获取访问令牌
状态 与传递给的值相同/ oauth2 /授权

隐式流

如果你选择遵循隐式流重定向URI将在URI片段中包含以下参数:

参数 描述
access_token 访问令牌
token_type 令牌类型。设置为持票人
expires_in 过期时间。设置为1小时,单位为秒-3600
refresh_token 刷新令牌。
范围 访问令牌的范围。只有当请求的范围与默认范围不同时,它才必须出现。

JSON格式

的名字 类型 只读 强制性的 描述
response_type 字符串 真正的 请求的授权授予类型。如果您想遵循授权代码流,请使用代码如果你想使用隐式流,那就使用令牌
client_id 字符串 真正的 从注册中收到的客户端的唯一标识符。
redirect_uri 字符串 真正的 您注册的URL回调URL在客户端注册期间。
范围 字符串 真正的 以空格分隔的访问请求范围的列表。可能的值:配置文件
状态 字符串 一个不透明的字符串值,用于维护请求和回调之间的状态。该参数用于防止跨站点请求伪造(CSRF)。

允许

  • 代理
  • 管理员

使用旋度

             
旋度-v -X GET https://api.getbase.com/oauth2/authorize?response_type令牌client_id% 24 client_idredirect_urihttps % 3 a % 2 f % 2 fexample.com fcallback % 2 foauth % 2范围状态% 24 csrf_token

检索访问令牌

             
帖子/oauth2/令牌

检索访问令牌。对象向令牌端点发出请求,以检索承载访问令牌和刷新令牌应用程序/ x-www-form-urlencoded格式。

支持以下OAuth 2.0流程:

注意,对OAuth令牌端点的每个请求都需要客户端身份验证.要验证应用程序,请使用标准授权头使用基本身份验证方案,其中用户名是client_id密码是client_secret

响应体将包括以下字段:

参数 描述
access_token 访问令牌
token_type 令牌类型。设置为持票人
expires_in 过期时间。设置为1小时,单位为秒-3600
refresh_token 刷新令牌。
范围 访问令牌的范围。只有当请求的范围与默认范围不同时,它才必须出现。

JSON格式

的名字 类型 只读 强制性的 描述
grant_type 字符串 真正的 赠款类型。如果你想跟我来授权码流然后使用authorization_code如果你想用资源所有者密码凭证流,使用密码
client_id 字符串 真正的 唯一的客户端标识符
client_secret 字符串 真正的 唯一的客户端秘密
redirect_uri 字符串 授权请求中包含的重定向URI。要求如果grant_type等于authorization_code
范围 字符串 以空格分隔的访问请求范围的列表。
代码 字符串 在授权请求中从授权服务器接收到的授权代码的值。要求如果grant_type等于authorization_code
用户名 字符串 资源所有者的用户名。要求如果grant_type等于密码
密码 字符串 资源所有者密码。要求如果grant_type等于密码

允许

  • 代理
  • 管理员

使用旋度

             
旋度-v -X POST https://api.getbase.com/oauth2/token- h“内容类型:应用程序/ x-www-form-urlencoded”- h"授权:Basic Base64(美元CLIENT_IDCLIENT_SECRET美元)”- d“grant_type = authorization_code&code =AUTHORIZATION_CODE美元&redirect_uri =CLIENT_REDIRECT_URI美元

示例响应

             
HTTP /1.1200好吧cache - control不是商店编译指示no - cache“access_token”“ACCESS_TOKEN美元”“token_type”“持票人”“expires_in”3600“范围”“读写配置文件”“refresh_token”“REFRESH_TOKEN美元”

撤销令牌

             
帖子/oauth2/撤销

撤销单个访问令牌或单个刷新令牌及其所有相关的访问令牌。这样做是为了通知我们不再使用令牌,以便我们可以清理安全凭据。属性向撤销端点发出请求,以撤销令牌应用程序/ x-www-form-urlencoded格式。

注意,对OAuth撤销端点的每个请求都需要客户端身份验证.要验证应用程序,请使用标准授权头使用基本身份验证方案,其中用户名是client_id密码是client_secret

参数 描述
令牌 客户端要撤销的令牌。
token_type_hint 关于令牌类型的提示。可能的值:access_tokenrefresh_token

允许

  • 代理
  • 管理员

使用旋度

             
旋度-v -X POST https://api.getbase.com/oauth2/revoke- h“内容类型:应用程序/ x-www-form-urlencoded”- h"授权:Basic Base64(美元CLIENT_IDCLIENT_SECRET美元)”- d'牌=REFRESH_TOKEN美元&token_type_hint = refresh_token '

示例响应

             
Http /1.1 200 ok

检索一个CSRF令牌

             
得到/oauth2/csrf_token

当你使用OAuth 2时授权码流隐式流时,强烈建议传递一个不透明的字符串值状态维护请求和回调之间的状态。该参数用于防范CSRF (Cross-Site Request Forgery)攻击。我们为您提供一个端点,该端点返回安全、伪随机、反csrf令牌。你也可以用你自己的。无论哪种方式,强烈建议在请求期间使用state参数。

参数 描述
令牌 客户端要撤销的令牌。
token_type_hint 关于令牌类型的提示。可能的值:access_tokenrefresh_token

允许

  • 代理
  • 管理员

使用旋度

             
旋度-v -X GET https://api.getbase.com/oauth2/csrf_token- h“接受:application / json”

示例响应

             
HTTP /1.1200好吧cache - control不是商店编译指示no - cache“csrf_token”“ANTI_CSRF_TOKEN美元”“generated_at”“2014 - 09 - 28 - t16:32:56z”