前言
在系统中,在 token 的有效期内,可以登录使用,并且要求如果一直使用系统,一直保持登录状态,而不是 token 过期就直接退出系统了,所以需要在操作系统时保持对 token 有效期的续期。
本文是以 gateway 网关过滤器功能实现。
提示:以下是本篇文章正文内容,下面案例可供参考
一、使用步骤
1.实体user
- 在用户的实体类中添加如下几个字段
private Integer expireTime; // 登录超时时间,单位min,此为数据库存的,用户可以自由设置过期时间(按需操作)
private Long loginTime; // 登录时间
private Long failureTime; // 过期时间
private String token; // 用户唯一标识
2.登录AuthController
public class AuthController {
private static final long MILLIS_SECOND = 1000;
private static final long MILLIS_MINUTE = 60 * MILLIS_SECOND;
@Autowired
private RedisUtil redisUtil;
@PostMapping("/login")
public R login( HttpServletRequest request, @RequestBody AuthUser user){
// 验证用户名密码、验证码、登录次数、禁用账号等代码省略...
// userEntity为数据库查询出来的用户信息
// 登录超时时间,数据库获取,如无此需求,可规定 30min过期即可
Integer expireTime = userEntity.getExpireTime();
userEntity.setLoginTime(System.currentTimeMillis());

本文介绍了如何在系统中通过Gateway网关过滤器实现用户登录后持续保持有效期内的登录状态,涉及实体User的字段扩展、AuthController中的登录处理、GatewayFilter中令牌续期以及TokenService的验证和刷新功能。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



