首页 新闻 会员 周边 捐助

nest微服务如何获取session

0
悬赏园豆:50 [已解决问题] 解决于 2022-06-02 11:52

我现在两个nest服务 A是主服务 B是微服务 前端调A的接口 A去分发给B 然后A能获取到携带的session 但是B服务如何获取到这个session呢?只能在A里获取session然后添加到参数里面传给B吗?这样感觉不太友好啊

半夜蝉鸣丶的主页 半夜蝉鸣丶 | 初学一级 | 园豆:159
提问于:2022-05-27 17:50
< >
分享
最佳答案
0

存 redis,吧,一般都是用 类似jtw这种了

收获园豆:50
永远跟党走i | 小虾三级 |园豆:1542 | 2022-05-27 20:17

我在redis里存了,但是微服务里拿不到存的这个key值不

半夜蝉鸣丶 | 园豆:159 (初学一级) | 2022-05-27 22:43

@半夜蝉鸣丶: 一般呢,我们是这样的,接口请求了token,会把token存到本地浏览器缓存 ,然后每次请求都携带

永远跟党走i | 园豆:1542 (小虾三级) | 2022-05-28 09:22

@敲代码挣彩礼: 是的,但是这个携带的只有主服务能拿到,我现在是想在微服务里拿到请求头,不知道用什么方法

半夜蝉鸣丶 | 园豆:159 (初学一级) | 2022-05-28 09:25

@半夜蝉鸣丶: 这个东西你必须先缓存本地一份,需要的时候再去携带请求才行的

永远跟党走i | 园豆:1542 (小虾三级) | 2022-05-28 14:12

@敲代码挣彩礼: 不是,你没理解我的意思,我这个前端调主服务的时候携带了,主服务可以获取,然后主服务分发给微服务的时候,微服务获取不到。。。

半夜蝉鸣丶 | 园豆:159 (初学一级) | 2022-05-28 14:34

@半夜蝉鸣丶: 不是,分发的时候不就是网关转发类似的吗,跟你前端不携带token 有什么关系?
你前端必须要携带 信息啊,不然谁知道你是不是非法登录的

永远跟党走i | 园豆:1542 (小虾三级) | 2022-05-28 16:24

@敲代码挣彩礼: 前端是带着,但是分发的时候,分发给的那个微服务,获取不到。。。

半夜蝉鸣丶 | 园豆:159 (初学一级) | 2022-05-29 07:54
其他回答(1)
0

这个应该很简单的实现把。
1、前端在获取到token以后,缓存到本地,浏览器在调用http请求时通过header传递给API服务
2、API服务在收到请求转发时,转发组建都会把这一些信息带到下游API的
3、如果第二点,自己时间写的http调用下游服务,那么自己写代码把对应的header头部信息带到请求下游即可

程序员修炼之旅 | 园豆:976 (小虾三级) | 2022-05-30 15:16

nest微服务,我找了挺久,没办法获取到请求头,只有主服务能获取,然后主服务可以给微服务传一些参数,把session当成参数传过去是最后的方案,现在就是想找其他方式,能不能在微服务里也获取到请求头

支持(0) 反对(0) 半夜蝉鸣丶 | 园豆:159 (初学一级) | 2022-05-30 15:20

主服务和微服务都是nest项目,不过微服务是通过微服务方式启动的,然后注册进主服务的,在主服务里可以通过@Req装饰器获取请求头,但是微服务里获取不到

支持(0) 反对(0) 半夜蝉鸣丶 | 园豆:159 (初学一级) | 2022-05-30 15:24
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册