实现基于令牌的身份验证的最佳方法是什么



我有一个 Spring Boot 应用程序,它充当服务器的客户端。它在经过身份验证后从服务器请求数据。服务器使用基于令牌的身份验证,每 15 分钟更改一次令牌。我的客户端应用程序获取新令牌的最有效、最干净的方式是什么?默认情况下,我使用多线程,在我的主应用程序的后台,我每 15 分钟请求一次新令牌,但这效率不高。那么还有其他方法,如响应式编程等来做到这一点吗? 请注意,我的应用程序需要一次向服务器发送大量请求,因此我无法在每次发送请求时检查获取令牌的时间。

我会将@RetryableRetryOperationsInterceptorExceptionClassifierRetryPolicy一起使用。

事情是这样的:

我们有一个@Component单例来保存身份验证令牌:

@Component
public class AuthenticationHolder {
private String token;
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
}

使实际从服务器请求数据的@Component不知道身份验证过程。它只有对你的AuthenticationHolder单例的引用,并且在它尝试请求数据的方法中(显然用@Retryable注释,它检索令牌并发出请求。如果它失败并导致来自服务器的响应代码错误,请使其引发异常,然后重试。在重试之间,使RetryOperationsInterceptor续订身份验证令牌。

相关内容

  • 没有找到相关文章

最新更新