前言
上篇文章介绍了Spring Boot Security配置了自定义登录
本篇文章,博主会介绍实现记住我功能
开始
Spring Security记住我功能,其实就是就是当用户勾选了”记住我”然后成功认证登录了,那在有效时间内免登录直接进入
那么,Spring Security实现记住我的方式有两种:
- 1.本地存储(cookie)
- 2.持久化存储
这里博主简单的说下流程,当Spring Security用户登录成功的时候,它会生成授权信息(token)
然后方法一的话,Spring Security会把token传输到用户本地浏览器cookie里面存储起来
方法二的话就是把token存入数据库中,那么相信大家也就清楚了
像token这种敏感的数据,是不建议暴露用户那边的,因为这样很容易会被中间人劫持,又或者被伪造请求(CSRF),所以博主是建议使用第二种办法
那么下面开始展示实现代码,,我们继上篇的代码,在Spring Security配置类上添加持久化配置:
1 | /** |
首先,要想存储到数据库种,那是需要创建数据库表存储,这里通过tokenRepository.setCreateTableOnStartup(true)方法就可以让Spring Security自动创建数据库表,不过记得下次启动的时候一定要注释起来
其次就是在权限核心配置方法中追加了.rememberMe()的一系列配置。
接下来,在前端登录页面上,需要新添加一个复选框,然后加上属性name=”remember-me”即可记住我
login.html
1 | <input type="checkbox" name="remember-me"/> |
完整代码如下:
1 |
|
开始启动程序,之后打开数据库会发现自动创建了存储token的persistent_logins表:
然后再看看登录效果:
当我点击登录并登录成功后,persistent_logins表就多了条信息:
那么基本代码和效果也演示完毕了
源码获取方式加加入QQ交流群(715224124),进群找群主要源码,如果有问题,可以提出疑问,群主会尽量帮助解决~
希望能帮助到大家,如果有不好或者错误的地方希望能多多提出,谢谢大家~