主动登录流程
用户抉择记住我登录胜利后,会在服务端生成一个 Cookie 返回到浏览器,Cookie 名字默认是remember-me
, 值是 token
当用户从新拜访的时候,会先查看 remember-me 的 cookie 对
应的 token 值,如果 token 值存在则查看 token 值中的 username、序列号和 token 值是否和服务端生成的雷同,雷同则通过。并且零碎还会从新生成一个新的 token, 序列化 series 放弃不变,同时删除旧的 cookie,从新生成一个新的 cookie 保留在客户端
如果 cookie
不存在,或者 username、序列化 series 和 token 和
服务端的不一样,将从新返回到登录页面。
因为 cookie 有被盗用的可能,所以如果利用安全性比拟高,那么就不要应用 r emember-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>