day03_token获取到用户信息

本文介绍了在项目中如何利用token获取用户id信息。通过解析token,将用户信息存储到ThreadLocal中,以便在同一个进程中随时访问。文章详细阐述了从网关层的token解析到自媒体微服务中拦截器的实现,以及为何选择ThreadLocal而非Session来存储用户信息。
摘要由CSDN通过智能技术生成

1.token

什么是token:
    token的意思是“令牌”,是服务端生成的一串字符串,作为客户端进行请求的一个标识。
    
    当用户第一次登录后,服务器生成一个token并将此token返回给客户端,以后客户端只需带上这个token前来请求数据即可,无需再次带上用户名和密码。
    
    简单token的组成;uid(用户唯一的身份标识)、time(当前时间的时间戳)、sign(签名,token的前几位以哈希算法压缩成的一定长度的十六进制字符串。为防止token泄露)。
    
token: 前端携带密码第一次登录时候  就会携带如下的  token格式  避免重复验证登录

eyJhbGciOiJIUzUxMiIsInppcCI6IkdaSVAifQ.

H4sIAAAAAAAAAC2L0QrDIAwA_yXPFTSLaezfWHXMQUGIhY2xf18Ke7vjuA88Z4cNVikkN2JHPqyOYiWXyj049Ckhlup3QVig5wlb4MghikReQM_dbn3rbMfVVU0frR_ZLJ_VLI9h3F7jfzLSdXZr9P0Bi1NUEYAAAAA.

MoOlTyjOlTdql-Oc0VSklwRDuZFS2eSKy89DNCSQbMBh3gUejElPp63i3nhGCC_0r1K6YG9jsQZBUqc9aLCglw

2项目中如何使用token去获取到用户的id信息

2.1大体实现流程

因为token涵盖了用户信息id,所以同项目一我们通过解析token,得到用户的信息,进而存入到ThreadLocal中,至此我们就能够在统一进程中,随时拿到当前用户的id信息。

2.2.3)实现思路

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IZdRtZ9V-1656921948696)(E:/heima01/10_黑马头条/day03-自媒体文章发布/笔记/自媒体文章发布.assets/image-20210426144603541.png)]

①:网关进行token解析后,把解析后的用户信息存储到header中

heima-leadnews-wemedia-gateway微服务中的AuthorizeFilter:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IdlUrL4j-1656921948697)(E:/heima01/10_黑马头条/day03-自媒体文章发布/笔记/自媒体文章发布.assets/image-20210704190939097.png)]

核心代码:

//获得token解析后中的用户信息
Object userId = claimsBody.get("id");
//在header中添加用户ID
ServerHttpRequest serverHttpRequest = request.mutate().headers(httpHeaders -> {
   
    httpHeaders.add("userId", userId + "");
}).build
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值