《SpringSecurityOauth2》 4 . 客户端模式 (Client Credential) grant_type=client_credential

《SpringSecurityOauth2》 4 . 客户端模式 (Client Credential) grant_type=client_credential_第1张图片

 

1. 用客户端证书交换访问令牌

应用程序需要向认证服务器申请访问令牌,而该请求则需要客户端证书进行认证。

假设现在我们正在折腾环信IM,其认证URL为:

https://a1.easemob.com/pair/pair/token

这里需要使用POST请求并附带以下参数:

grant_type

这里为“client_credentials”

client_id

应用注册时获得的client id

client_secret

应用注册时获得的client secret

以下是一个通过命令行HTTP客户端curl发起的请求示例:

curl -d "grant_type=client_credentials\
&client_id=2016273333331117128396\
&client_secret=904b98aaaaaaac1c92381d2" \
https://a1.easemob.com/pair/pair/token


 POST /token HTTP/1.1
 Host: a1.easemob.com/pair/pair/token
 Authorization: Basic czZCaGRSa3F0MzpnWDFmQmF0M2JW
 Content-Type: application/x-www-form-urlencoded;charset=UTF-8
 grant_type=client_credentials

其中Authorization是client_id及client_secret组成的http_basic验证串。grant_type必须为client_credentials!

如果认证成功,服务器将会返回令牌access_token:

     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"
     }

 

你可能感兴趣的:(java,springboot,springsecurity)