OAuth参考
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_id&redirect_uri=https % 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_ID:CLIENT_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_token ,refresh_token |
允许
- 代理
- 管理员
使用旋度
旋度-v -X POST https://api.getbase.com/oauth2/revoke\
- h“内容类型:应用程序/ x-www-form-urlencoded”\
- h"授权:Basic Base64(美元CLIENT_ID:CLIENT_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_token ,refresh_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”
}