主动登录流程
用户抉择记住我登录胜利后,会在服务端生成一个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>
发表回复