[英]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.