客户端模式
客户端模式
客户端模式(Client Credentials Grant)指客户端以自己的名义,而不是以用户的名义,向"服务提供商"进行认证。
严格地说,客户端模式并不属于OAuth框架所要解决的问题。在这种模式中,用户直接向客户端注册,客户端以自己的名义要求"服务提供商"提供服务,其实不存在授权问题。
它的步骤如下:
(A)客户端向认证服务器进行身份认证,并要求一个访问令牌。
(B)认证服务器确认无误后,向客户端提供访问令牌。
A步骤中,客户端发出的HTTP请求,包含以下参数:
granttype:表示授权类型,此处的值固定为"clientcredentials",必选项。
scope:表示权限范围,可选项。
POST /token HTTP/1.1
Host: server.example.com
Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
Content-Type: application/x-www-form-urlencoded
grant_type=client_credentials
认证服务器必须以某种方式,验证客户端身份。
B步骤中,认证服务器向客户端发送访问令牌,下面是一个例子。
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Cache-Control: no-store
Pragma: no-cache
{
"access_token":"2YotnFZFEjr1zCsicMWpAA",
"token_type":"example",
"expires_in":3600,
"example_parameter":"example_value"
}
---------------------
本文来自 落笔映半海 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/qq_36427770/article/details/68922558?utm_source=copy
Client模式
请求格式:POST -D "&client_id=appid&grant_type=client_credentials&client_secret=appkey" http://localhost/OAuth/token
服务器返回来的访问令牌:
{ "access_token":"4e56e9ec-2f8e-46b4-88b1-5d06847909ad",
"token_type": "bearer” ,
"refresh_token":"7e14c979-7039-49d0-9c5d-854efe7f5b38",
"expires_in": 36133 ,
"scope": "read,write"
}
---------------------
本文来自 张胜楠 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/tclzsn7456/article/details/79550249?utm_source=copy
<dependency>
<groupId>org.apache.oltu.oauth2</groupId>
<artifactId>org.apache.oltu.oauth2.client</artifactId>
<version>0.31</version>
</dependency>