Java:token自动续期,使用Gateway过滤器—GlobalFilter

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

在系统中,在 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());
        
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值