簡體   English   中英

實現基於令牌的身份驗證的最佳方法是什么

[英]What is the best approach to implement token based authentication

我有一個 Spring 引導應用程序,它充當服務器的客戶端。 它在通過身份驗證后向服務器請求數據。 服務器使用基於令牌的身份驗證並每 15 分鍾更改一次令牌。 我的客戶端應用程序獲取新令牌的最有效和更清潔的方式是什么? 默認情況下,我使用多線程,並且在我的主應用程序的后台,我每 15 分鍾請求一次新令牌,但效率不高。 那么是否有其他方法,如反應式編程等來做到這一點? 請注意,我的應用程序需要一次向服務器發送大量請求,因此我無法在每次發送請求時檢查獲取令牌的時間。

我會將@RetryableRetryOperationsInterceptorExceptionClassifierRetryPolicy一起使用。

事情是這樣的:

我們有一個@Component singleton 來保存身份驗證令牌:

@Component
public class AuthenticationHolder {

    private String token;

    public String getToken() {
        return token;
    }

    public void setToken(String token) {
         this.token = token;
    }
}

使實際從服務器請求數據的@Component不知道身份驗證過程。 它只引用了您的AuthenticationHolder singleton,並且在它嘗試請求數據的方法中(顯然用@Retryable注釋,它檢索令牌並發出請求。如果它因來自服務器的錯誤響應代碼而失敗,讓它拋出一個異常,它會重試。在重試之間,讓你的RetryOperationsInterceptor更新身份驗證令牌。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM