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