优秀的编程知识分享平台

网站首页 > 技术文章 正文

OAuth 系列(五)客户端模式 Client Credentials

nanyue 2024-08-08 19:00:06 技术文章 11 ℃

前面讲的三种模式都是面向用户的;

获取的 access_token 都有对应的 user ;

今天要讲的客户端模式获取的 access_token 则没有对应的 user ;

和 密码模式 相似的地方在于一般都是用于自己的应用;

不会给第三方开放客户端模式;

它的应用场景主要是机器或应用之间调用 api 访问数据;

和 简化模式 相似的地方在于同样只有 access_token 没有refresh_token ;

获取 Token

直接获取 Token ;

请求方式: POST

链接:http:// oauth.test/oauth/token

请求参数如下:

grant_type: client_credentials
scope: *

grant_type : 固定值为 client_credentials

scope : 要申请的权限

请求中没有任何关于用户的信息;

OAuth 协议中也没有明确要求如何认证;

但是获取 access_token 的这个接口必须要是受保护的;

协议的示例是使用 Authorization: Basic ;

POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials

请求的返回值如下:

{
 "token_type": "Bearer",
 "expires_in": xxx,
 "access_token": "xxx",
}

请求的返回值如下:

token_type 是 token 类型一般是 Bearer ;

expires_in 过期时间

access_token 用于访问资源的令牌

Tags:

最近发表
标签列表