主动登录流程
用户抉择记住我登录胜利后,会在服务端生成一个Cookie返回到浏览器,Cookie名字默认是remember-me
,值是token
当用户从新拜访的时候,会先查看remember-me的cookie对
应的token值,如果token值存在则查看token值中的username、序列号和token值是否和服务端生成的雷同,雷同则通过。并且零碎还会从新生成一个新的token,序列化series放弃不变,同时删除旧的cookie,从新生成一个新的cookie保留在客户端
如果cookie
不存在,或者username、序列化series和token和
服务端的不一样,将从新返回到登录页面。
因为cookie有被盗用的可能,所以如果利用安全性比拟高,那么就不要应用remember-me功
能。
散列解密计划SpringSecurity实
现主动登录性能非常简单
批改login.html
咱们须要在login.html中增加记住我性能,html实现如下
<!--suppress ALL--><!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org" lang="en"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <title>springboot葵花宝典登录页面</title> <!-- Tell the browser to be responsive to screen width --> <meta name="viewport" content="width=device-width, initial-scale=1"></head><body><h1>springboot葵花宝典登录页面</h1><form th:action="@{/login/form}" action="index.html" method="post"> <span>用户名称</span><input type="text" name="username" /> <br> <span>用户明码</span><input type="password" name="password" /> <br> <div > <input name="code" type="text" class="form-control" placeholder="验证码"> <img onclick="this.src='/code/image?'+Math.random()" src="/code/image" alt="验证码" /> </div> <br> <span>记住我</span><input type="checkbox" name="remember-me" > <br> <div th:if="${param.error}"> <span th:text="${session.SPRING_SECURITY_LAST_EXCEPTION.message}" style="color:#ff0000">用户名或 明码谬误</span> </div> <input type="submit" value="登陆"></form></body></html>
cookie个性化配置
在理论的开发过程中,咱们还能够依据需要做一些个性化的设置,如下:
.rememberMe() .rememberMeParameter("remember-me-new") .rememberMeCookieName("remember-me-cookie")
增加数据库依赖
咱们在我的项目中的pom.xml中增加数据库依赖
<!--mysql驱动--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <scope>runtime</scope> </dependency> <!--mybatis-plus--> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.5.1</version> </dependency>