【问题标题】:Automatically request accessToken using Feign使用 Feign 自动请求 accessToken
【发布时间】:2019-10-03 07:00:21
【问题描述】:

有很多帖子解释了如何使用 Feign Interceptor 将动态标头添加到请求中

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

是否有可能在多个线程之间共享jwtToken 并定期刷新?当前的解决方案是次优的,每次都会多打 1 个电话。

【问题讨论】:

    标签: jwt access-token feign


    【解决方案1】:

    我想出了解决方案:

    @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 寻找一些 @Cacheable 的东西吗?

    【讨论】:

      猜你喜欢
      • 2019-08-01
      • 2020-03-05
      • 2020-07-19
      • 2022-12-16
      • 2016-05-17
      • 2016-02-06
      • 2020-08-25
      • 1970-01-01
      • 2014-01-30
      相关资源
      最近更新 更多