ToB企服应用市场:ToB评测及商务社交产业平台

标题: 使用 Sa-Token 实现 [记住我] 模式登录、七天免登录 [打印本页]

作者: 美食家大橙子    时间: 2023-6-19 03:37
标题: 使用 Sa-Token 实现 [记住我] 模式登录、七天免登录
一、需求分析

如图所示,一般网站的登录界面都会有一个 [记住我] 按钮,当你勾选它登录后,即使你关闭浏览器再次打开网站,也依然会处于登录状态,无须重复验证密码:

本文将详细介绍在 Sa-Token中,如何做到以下登录模式:
Sa-Token 是一个轻量级 java 权限认证框架,主要解决登录认证、权限认证、单点登录、OAuth2、微服务网关鉴权 等一系列权限相关问题。
首先在项目中引入 Sa-Token 依赖:
  1. <dependency>
  2.     <groupId>cn.dev33</groupId>
  3.     <artifactId>sa-token-spring-boot-starter</artifactId>
  4.     <version>1.34.0</version>
  5. </dependency>
复制代码
注:如果你使用的是 SpringBoot 3.x,只需要将 sa-token-spring-boot-starter 修改为 sa-token-spring-boot3-starter 即可。
二、在 Sa-Token 中实现记住我功能

Sa-Token的登录授权,默认就是[记住我]模式,为了实现[非记住我]模式,你需要在登录时如下设置:
  1. // 设置登录账号id为10001,第二个参数指定是否为[记住我],当此值为false后,关闭浏览器后再次打开需要重新登录
  2. StpUtil.login(10001, false);
复制代码
那么,Sa-Token实现[记住我]的具体原理是?
三、实现原理

Cookie作为浏览器提供的默认会话跟踪机制,其生命周期有两种形式,分别是:
利用Cookie的此特性,我们便可以轻松实现 [记住我] 模式:
动态演示图:

四、前后端分离模式下如何实现[记住我]?


此时机智的你
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4