1、前端发送请求到后端
- 请求内容包含uname,ecpwd
- uname是用户名,ecpwd是将明文密码用公钥(前端公开的)加密后的字符串
2、后端收到数据
- 1、通过uname查询数据库中的uname的相关信息(该用户对应的密码(加密后的密文),盐值)
- 2、将ecpwd用私钥(服务器内自己定义的)解密成明文密码pwd
- 3、将明文密码pwd用uname的盐值,用户名进行加密得到pwdtemp
- 4、将pwdtemp和uname的密码(数据库查到的)进行对比
- 5、(假设第四步成功),用uname的用户名,用户ID,密码,等等,生成一个token字符串
- 6、从数据库中查看该用户的权限
- 7、将用户名的id存入cache
3、后端返回token给前端
- 前端将token存入自己的cookie
- 之后前端向后端请求都需要自己携带token
- 退出登录只需要清除cookie即可