Jwt 使用Feign自动请求accessToken

Jwt 使用Feign自动请求accessToken,jwt,access-token,feign,Jwt,Access Token,Feign,有许多帖子解释了如何使用假拦截器将动态头添加到请求中 @Bean public RequestInterceptor requestInterceptor() { @Override public void apply(RequestTemplate requestTemplate) { var jwtToken = refreshAccessTokenClient.refresh(); requestTemplate.header("Author

有许多帖子解释了如何使用假拦截器将动态头添加到请求中

@Bean
public RequestInterceptor requestInterceptor() {
    @Override
    public void apply(RequestTemplate requestTemplate) {
        var jwtToken = refreshAccessTokenClient.refresh();
        requestTemplate.header("Authorization", jwtToken);
    }
}

是否有可能跨多个线程共享
jwtToken
,并定期刷新?当前的解决方案是次优的,每次额外打一个电话。

我想出了一个解决方案:

@Bean
    public RequestInterceptor requestInterceptor(@Value("${service.login}") String login,
                                                 @Value("${service.apiKey}") String apiKey) {
        return
                requestTemplate -> {
                    var request = LoginRequest.builder().loginId(login).apiKey(apiKey).build();
                    var jwtToken = authAuthProvider.login(request).getData().getAccessToken();
                    requestTemplate.header("Authorization", "Bearer " + jwtToken);
                };
    }
我盲目地为每个API调用请求jwtToken。这看起来不是一个有效的解决方案。应该用TLL查找一些可缓存的东西吗