主动登录流程

用户抉择记住我登录胜利后,会在服务端生成一个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>