如何刷新oAuth2令牌+弹簧安全
Posted
技术标签:
【中文标题】如何刷新oAuth2令牌+弹簧安全【英文标题】:How to refesh oAuth2 token + spring security 【发布时间】:2016-06-12 04:15:40 【问题描述】:我已经使用 oAuth2 实现了 Spring 安全性。我想在访问令牌过期之前刷新它。请帮助我如何请求刷新我的访问令牌。
【问题讨论】:
【参考方案1】:oauth/token?grant_type=refresh_token&client_id=[id]&client_secret=[secret]&refresh_token=[your refresh token]
像上面一样发送请求。您应该在请求中添加客户详细信息。
【讨论】:
您好,我现在收到此异常 "error":"server_error","error_description":"UserDetailsService is required."【参考方案2】:你可以向oauth/token发出POST请求,见AngularJS sn-p如下:
function ajaxRefreshToken(refresh_token)
return $injector.get('$http')
.post(
'oauth/token',
'grant_type=refresh_token&refresh_token=' + refresh_token,
headers:
'Content-Type': 'application/x-www-form-urlencoded',
'Accept': 'application/json',
'Authorization': 'Basic ' + Base64.encode('***' + ':' + '***')
);
或者,使用 cURL:
curl -s -u $CLIENT_ID:$SECRET \
'http://$HOST/oauth/token' \
-H 'Content-Type: application/x-www-form-urlencoded' \
--data 'grant_type=refresh_token&refresh_token='$REFRESH_TOKEN
【讨论】:
嗨@francesecou,我收到了这个请求 "error":"unauthorized","error_description":"Full authentication is required to access this resource"。 您好,我现在收到此异常 "error":"server_error","error_description":"UserDetailsService is required." 你是用你的clientId和clientSecret替换这两个***吗? @sdoxsee:是的,我在之前的评论中添加了一个 cURL 示例 @charnjeet-singh:请写完整的堆栈跟踪以上是关于如何刷新oAuth2令牌+弹簧安全的主要内容,如果未能解决你的问题,请参考以下文章
如何基于使用 Oauth2 协议的身份验证改进 JWT 访问令牌和刷新令牌?
如何获得一个无限期使用的访问令牌/刷新令牌(oauth2 - Spotify API)