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查找一些可缓存的东西吗