若依微服务版本

文章正文
发布时间:2025-05-13 08:37

若依密码产生和验证过程:%E8%8B%A5%E4%BE%9D%E5%AF%86%E7%A0%81%E4%BA%A7%E7%94%9F%E5%92%8C%E9%AA%8C%E8%AF%81%E8%BF%87%E7%A8%8B/

jwt相关知识:https://blog.csdn.net/weixin_45070175/article/details/118559272

概览

A,注册用户时对password加密(不可逆),保存在数据库;

B,用户使用namepassword登录,使用相同的参数对password加密后,和数据库的比较,不相同则密码错误;

C,后台生成token返回给前台,前台保存token在登录人的电脑中;

D,登录人调用后台接口,前端开发人员把本地的token放到请求头中;请求先走到网关,网关获取token并验签解析token,成功则说明认证成功,允许你继续访问后台资源了;

一、密码校验

1,注册用户,加密明文密码

加密的入参(加密算法、盐、随机数)都是使用的默认的;

2,用户登录,校验密码

将明文密码使用和步骤1中相同的加密方式和加密入参进行加密,并和数据库保存的加密密码比较;

二、生成token

1,用户登录,创建token

2,创建token的大体流程

3,生成UUID作为token

4,后台使用redis缓存token,过期时间半天

5,将tokenuserId、用户名称打包成jwt,返回给前台

三、校验token

1,前台如何传递token

前台需要和后台商量好传递token的方式,比如若依这个项目,前端把token放在请求头里传递给我后台,请求头的keyAuthorizationvalue在前面还拼上了Bearer

2,后台校验token

所有的前台请求都会先走到网关(gate-way),这样token的认证校验就统一交给网关处理,校验通过后再分发给对应的服务;

3,解析tokenjwt

像我们平常瞎写token,基本是无法验签的;因为jwt应该包含了signature字段,后台使用证书解签的时候得到的signature和传来的signature肯定是不一样的;

四、其他

后台给了前台token,前台拿着这个token就可以访问后台,并且可以识别是谁在访问,通过曲线救国的方式让无状态的http请求变成了有状态的;

token可以在多个服务间共享,省的每个服务都要去连数据库查询用户名密码是否正确;

首页
评论
分享
Top