当前端发出请求,gateway鉴权通过后,转发到如订单服务,这时候怎么获取到登陆账户的信息,如id之类的
可以使用 jwt token 进行用户认证,jwt token 是可以携带信息的。认证完成后可以把 jwt token 放在请求头里面,其它系统如果需要用户信息就可以从 http 请求头中获取这个 jwt token。
下图左侧是 jwt token 信息,右侧是这个 token 解码后的信息:
相关网站: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的有效性。