我们可以使用Java使用客户端ID /密钥刷新/重新生成OAuth令牌吗?如果是这样,有人可以引导我到正确的链接吗?如果没有,注册的应用程序如何自动刷新过期的承载令牌?
答案 0 :(得分:0)
我对这个问题有三个主张:
你可以杀死/删除/撤销当前的访问令牌并要求另一个令牌。检查TokenStore的文档:http://docs.spring.io/spring-security/oauth/apidocs/org/springframework/security/oauth2/provider/token/TokenStore.html。这是一个示例代码:
@Autowired
private TokenStore tokenStore;
@RequestMapping(value = "/oauth/revoke-token", method = RequestMethod.GET)
public void revoke(HttpServletRequest request) {
String authHeader = request.getHeader("Authorization");
if (authHeader != null) {
String tokenValue = authHeader.replace("Bearer", "").trim();
OAuth2AccessToken accessToken = tokenStore.readAccessToken(tokenValue);
tokenStore.removeAccessToken(accessToken);
}
}
或者当您需要访问令牌时,您可以询问刷新令牌。使用此刷新令牌,您可以请求/刷新新的访问令牌。这里是令牌的示例代码:
clients.inMemory() .withClient( “123456”) .authorizedGrantTypes(“password”,“refresh_token”) .scopes( “范围”) .resourceIds( “RESTAPI”) .secret( “654321”) .accessTokenValiditySeconds(60) .refreshTokenValiditySeconds(60)
干杯
答案 1 :(得分:0)
向/ body执行POST请求" grant_type = refresh_token& refresh_token = tGzv3JOkF0XG5Qx2TlKWIA& client_id = xxx& client_secret = xxxxx" 。您可以使用像apache HttpClient这样的库来发布请求,如果你谷歌就可以找到样本