目录
一、Remember Me介绍
Spring Security中Remember Me为“记住我”功能,即下次访问系统时无需重新登录。当使用“记住我”功能登录后,Spring Security会生成一个令牌,令牌一方面保存到数据库中,另一方面生成一个叫
remember-me
的Cookie保存到客户端。之后客户端访问项目时自动携带令牌,不登录即可完成认证。
二、基本使用
(1)编写配置类
@Configuration public class RememberMeConfig { @Autowired private DataSource dataSource; // 令牌Repository @Bean public PersistentTokenRepository getPersistentTokenRepository() { // 为Spring Security自带的令牌控制器设置数据源 JdbcTokenRepositoryImpl jdbcTokenRepositoryImpl = new JdbcTokenRepositoryImpl(); jdbcTokenRepositoryImpl.setDataSource(dataSource); //自动建表,第一次启动时需要,第二次启动时注释掉 // jdbcTokenRepositoryImpl.setCreateTableOnStartup(true); return jdbcTokenRepositoryImpl; } }
(2)修改Security配置类
// 记住我配置 http.rememberMe() .userDetailsService(userDetailsService)//登录逻辑交给哪个对象 .tokenRepository(repository) //持久层对象 .tokenValiditySeconds(30); //保存时间,单位:秒
(3)修改页面(添加记住我)
<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>