Spring oauth2.0 刷新token后设置原token5分钟内继续可用

在OAuth2.0中,默认刷新token会导致原token立即失效。为实现刷新token后原token在5分钟内仍可用,需要自定义tokenStore并重写`removeAccessTokenUsingRefreshToken`方法,避免立即删除旧token。这样配置后,原token将在5分钟后过期。

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

默认情况下刷新token后原token会立马不可用。但是在某些情况下我们需要刷新token后原token在一定时间内继续可用(例如微信的刷新token)。

通过查看DefaultTokenServices中的刷新token方法refreshAccessToken可以看到生成新的token后会调用removeAccessTokenUsingRefreshToken方法,此方法默认会删除存储的相关token信息

private void removeAccessTokenUsingRefreshToken(String refreshToken) {
		byte[] key = serializeKey(REFRESH_TO_ACCESS + refreshToken);
		List<Object> results = null;
		RedisConnection conn = getConnection();
		try {
			conn.openPipeline();
			conn.get(key);
			conn.del(key);
			results = conn.closePipeline();
		} finally {
			conn.close();
		}
		if (results == null) {
			return;
		}
		byte[] bytes = (byte[]) results.get(0);
		String accessToken = deserializeString(bytes);
		if (accessToken != null) {
			removeAccessToken(accessToken);
		}
	}

所以就需要重写该方法设置不立即删除

 

首先需要自定义tokenStore

public class OAuth2Au
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值