后端接口从前端参数获取jwt的token,需要调用feign接口,那边的feign接口要获取用户信息

Blade 未结 1 146
qdieslab
qdieslab 剑者 2025-04-11 11:20

一、该问题的重现步骤是什么?

1. excel导出的controller方法,前端只能打开新窗口调用,并通过url参数传递jwt的token

2. controller方法内需要调用feign接口

3.调用的feign接口需要获取当前用户信息

4.由于不是从请求的header传递jwt token,导致feign调用时无法传递token过去,被调用feign由此无法获取用户信息


二、你期待的结果是什么?实际看到的又是什么?

希望feign调用时能在header和URL参数中都检查是否有blade-auth参数


三、你正在使用的是什么产品,什么版本?在什么操作系统上?


四、请提供详细的错误堆栈信息,这很重要。


五、若有更多详细信息,请在下面提供。

1条回答
  • 2025-04-11 12:55

    feign调用正常情况也不应该通过请求头的token来获取,由于feign都是内部调用,所以应该把userId作为参数传递,在实现类获取userId后再获取详情来进行下一步操作。

    另外你可以看下最新版本的代码,导出已经是通过接口形式调用了,而不是通过打开新窗口导出了

    CleanShot20250411125447@2x.png

    作者追问:2天前

    还有一个情况是需要开启微服务鉴权的场景,要求所有的Feign调用都必须传递Blade-Auth请求头,但是因为前端是从参数传入的Blade-Auth值,Feign调用时无法从请求头获取Blade-Auth,会导致Feign请求鉴权失败,这种情况怎么处理?

    当时曾经试过修改ServletHttpHeadersGetter类,不过好像不起作用。

    1744613297362.png

    0 讨论(0)
代码语言
提交回复