关于#java#的问题:当前端发出请求,gateway鉴权通过后,转发到如订单服务,这时候怎么获取到登陆账户的信息

当前端发出请求,gateway鉴权通过后,转发到如订单服务,这时候怎么获取到登陆账户的信息,如id之类的

可以使用 jwt token 进行用户认证,jwt token 是可以携带信息的。认证完成后可以把 jwt token 放在请求头里面,其它系统如果需要用户信息就可以从 http 请求头中获取这个 jwt token。

下图左侧是 jwt token 信息,右侧是这个 token 解码后的信息:

img

相关网站:https://jwt.io/introduction

令牌中继把token带到下游或者网关解码后把token元数据中继到下游

使用token,可以把token放到request的head里面,鉴权时取出来。也可以把用户权限信息缓存在redis,在token里存一个redis的key,鉴权时从redis取下。

可以用token 来实现,当用户登陆成功后,token由后端算法生成,然后放到header 内,放回给前端。
前端访问后台的时候,需要带着这个token,通过网关的时候,会验证这个token,如果token验证通过,
则放行进行上游服务的访问。
如果要获取用户信息,那么带着这个token ,访问后台的用户信息接口,就行,这个token,会返回给用户信息给前端。
token 生成之后可以存在redis,同时和用户信息进行关联,并设置有效时间即可。
如果不想存储redis ,可以用jwt,不过存储到redis可以很好的控制token的有效性。