若依官方: http://doc.ruoyi.vip/ruoyi-cloud/cloud/auth.html#%E4%BD%BF%E7%94%A8%E8%AE%A4%E8%AF%81
若依密码产生和验证过程: http://wangxianfeng.cn/wordpress/2021/09/21/%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 ,用户使用 name 和 password 登录,使用相同的参数对 password 加密后,和数据库的比较,不相同则密码错误;
C ,后台生成 token 返回给前台,前台保存 token 在登录人的电脑中;
D ,登录人调用后台接口,前端开发人员把本地的 token 放到请求头中;请求先走到网关,网关获取 token 并验签解析 token ,成功则说明认证成功,允许你继续访问后台资源了;
一、密码校验
1,注册用户,加密明文密码
三、 校验 token
1, 前台如何传递 token
前台需要和后台商量好传递 token 的方式,比如若依这个项目,前端把 token 放在请求头里传递给我后台,请求头的 key 为 Authorization , value 在前面还拼上了 Bearer ;
2, 后台校验 token
所有的前台请求都会先走到网关( gate-way ),这样 token 的认证校验就统一交给网关处理,校验通过后再分发给对应的服务;
3, 解析 token ( jwt )
像我们平常瞎写 token ,基本是无法验签的;因为 jwt 应该包含了 signature 字段,后台使用证书解签的时候得到的 signature 和传来的 signature 肯定是不一样的;
后台给了前台 token ,前台拿着这个 token 就可以访问后台,并且可以识别是谁在访问,通过曲线救国的方式让无状态的 http 请求变成了有状态的;
token 可以在多个服务间共享,省的每个服务都要去连数据库查询用户名密码是否正确;