用户登录的详细流程
**
## 用户登录的详细流程
**
**
## 1.流程概述
**
(1)首先在进行用户登录的时候,要进行一些必要的准备工作。
比如说要对用户登录表进行设计。
一般是userId,userName,phone,password,salt,remark等等。
通常数据库存储的密码是md5进行加密的密文,但也不能直接对登录密码进行md5加密,然后存在数据库中。这样的密文用浏览器上的解密工具很容易就被破解了。一般是用加密盐salt和用户的密码一起加密,而这个salt本质上是随机数。
同样也需要设置加密规则,是怎么加密,是密码+salt一起加密,还是其他的加密方法。
加密方法1(hutool工具包里面的util中secureUtil类中方法)
```java
String md5Password = SecureUtil.md5(data);//data就是进行加密的数据
```
加密方法2(使用Spingframework自带的DigestUtils)
```java
String pwd= DigestUtils.md5DigestAsHex(user.password.getBytes())//user.password 就是对应的需要加密的密码
```
加密方法3(使用commons-code中digest包中的DigestUtils类的方法)
```java
String pwd= DigestUtils.md5Hex(data)//data是需要加密的密码
```
可以选择以上三个代码结合加密规则进行密码的md5加密。
然后把已经多次加密的密码存入数据库中。
(2)用户输入密码登录
可以直接把密码明文传入后台,然后按照加密的规则进行加密,然后和数据库的密码进行比较。
也可以让前端按照加密规则对明文直接加密好,后台直接把接收的数据和数据库进行对比。
(3)通过token令牌进行验证
如果对比密码是正确的,后台返回token(使用jwtUtil进行设置,token里面包含用户主键比如userid或者其他的)
然后前端把token存储起来,每次向前端请求数据必须带着token,然后后端根据带来的token进行对比和时效校验,如果正确在把数据返回。
**
## 2.总结
**
token的设置各种各样,而且后端的token校验也比较复杂,同时因为登录的用户权限不一致,还需要使用拦截器对请求进行拦截,进一步保证数据安全。关于这三块,等我具体了解清楚在进行记录。
以上就是关于《用户登录的详细流程》的全部内容,本文网址:https://www.7ca.cn/baike/28609.shtml,如对您有帮助可以分享给好友,谢谢。