[英]How to handle expiring refresh tokens in spring boot rest template client
我正在将第三方API集成到我的Spring Boot应用程序中。
第三方API身份验证的工作方式:
使用当前的访问令牌,我可以调用API。
有没有办法使用RestTemplate无缝处理这种情况?
我尝试手动处理这种情况,因此,如果我从API取回401,则发送了刷新令牌请求,重写了我取回的密钥并重试了该请求,不确定是否需要处理如何存储api密钥重新启动服务器。
这可以通过ClientHttpRequestInterceptor
轻松完成,如果发生例如401
,您可以在其中替换请求标头:
@Override
public ClientHttpResponse intercept(
HttpRequest request,
byte[] body,
ClientHttpRequestExecution execution) throws IOException {
ClientHttpResponse response = execution.execute(request, body);
if(response.getStatusCode() == HttpStatus.UNAUTHORIZED) {
request.getHeaders().replace("Auth-Header", getNewToken());
return execution.execute(request, body);
}
return response;
}
有关更多指导,请参见此处 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.