繁体   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