微服务 教程
1085个小节阅读:196.2k
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
Spring Security中Remember Me为“记住我”功能,即下次访问系统时无需重新登录。当使用“记住我”功能登录后,Spring Security会生成一个令牌,令牌一方面保存到数据库中,另一方面生成一个叫remember-me
的Cookie保存到客户端。之后客户端访问项目时自动携带令牌,不登录即可完成认证。
编写“记住我”配置类
xxxxxxxxxx
public class RememberMeConfig {
private DataSource dataSource;
// 令牌Repository
public PersistentTokenRepository getPersistentTokenRepository() {
// 为Spring Security自带的令牌控制器设置数据源
JdbcTokenRepositoryImpl jdbcTokenRepositoryImpl = new JdbcTokenRepositoryImpl();
jdbcTokenRepositoryImpl.setDataSource(dataSource);
//自动建表,第一次启动时需要,第二次启动时注释掉
// jdbcTokenRepositoryImpl.setCreateTableOnStartup(true);
return jdbcTokenRepositoryImpl;
}
}
修改Security配置类
xxxxxxxxxx
// 记住我配置
http.rememberMe()
.userDetailsService(userDetailsService)//登录逻辑交给哪个对象
.tokenRepository(repository) //持久层对象
.tokenValiditySeconds(30); //保存时间,单位:秒
在登录页面添加“记住我”复选框
xxxxxxxxxx
<form class="form" action="/login" method="post">
<input type="text" placeholder="用户名" name="username">
<input type="password" placeholder="密码" name="password">
<input type="checkbox" name="remember-me" value="true"/>记住我</br>
<button type="submit">登录</button>
</form>
实时效果反馈
1. 在SpringSecurity中,使用记住我功能时会生成
A 令牌
B 名为remember-me
的Cookie
C 令牌和名为remember-me
的Cookie
D 以上说法都不对
2. 在SpringSecurity中,使用记住我功能时,表单需要添加
A name值为remember-me
的复选框
B id值为remember-me
的复选框
C name值为remember
的复选框
D id值为remember
的复选框
答案
1=>C 2=>A