Spring Boot Oauth2多点登录,access_token刷新问题

五毛程序员 发布于 07/08 10:55
阅读 340
收藏 0

```
// 使用用户名和密码获取token(得到access_token和refresh_token)
http://localhost:8181/oauth/token?grant_type=password&username=admin&password=123456

// 使用refresh_token刷新access_token
http://localhost:8181/oauth/token?grant_type=refresh_token&refresh_token=c24a6143-97c8-4642-88b9-d5c5b902b487
```
我的问题是,在多端登录的情况下,如果客户端A使用refresh_token刷新了access_token,客户端B发现自己的access_token因为客户端A刷新access_token的原因失效了,客户端B也去刷新access_token,造成客户端A的access_token又失效了,客户端A又得去刷新access_token。这种情况如何避免或者如何解决?

以下是问题补充:

@五毛程序员:access_token有效期是两小时,refresh_token有效期是两个月。 (07/08 11:25)
加载中
-1
彪大大
彪大大

记录每次刷新token的设备,如果这一次刷新的设备和上一次一致就返回新token,如果设备不一致就返回上一次的token,如果上一次的token已过期就返回新token,这样让两台设备的token保持一样就不会出现问题。或者你也可以每台设备单独授权一个token。其实就是要区分两个设备。

五毛程序员
五毛程序员
您的两个思路都能解决问题,谢谢指教。
0
女神的小黄瓜
女神的小黄瓜

那就不刷了 重新登录好了

女神的小黄瓜
女神的小黄瓜
回复 @五毛程序员 : 反正这种情况 你不能自动刷 如果token更新了 UI上提示用户,判断是否是同一个设备,不是的话 他点击重新登录就重新刷 ,同一个设备你才帮他刷
五毛程序员
五毛程序员
兄弟,你这是逃避问题,不是解决问题。
五毛程序员
五毛程序员
因为access_token是两小时有效期,refresh_token是两个月有效期。不可能两小时就让用户重新登录一次。
0
dzfking007
dzfking007

你这个其实是一个账号多端登陆的问题,从你的问题来看,你的系统是允许一个账号同时在多端进行登陆的,账号和token是1对1的关系,有两个解决版本,1)设置token用不失效,2)每次刷新都获取最新的token值

给大家推荐一个很不错的接包网站,http://5511code.com

返回顶部
顶部