Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
446 views
in Technique[技术] by (71.8m points)

spring-cloud整合 OAuth2时,Token 刷新逻辑怎么处理??

比如在微服务中有一下几个服务:
oauth-server (登录认证发放token)
getway-server (网关服务用来转发前端接口请求和token校验)
user-server (用户资源服务)

1.首先用户会先去oauth-server进行登录操作,获取token值
2.前端请求user-server服务接口会携带token然后经过网关服务,网关服务此时会进行token校验。如果校验成功则通过,把请求转发给user-server服务。

问题:
这里有个问题,当在网关处校验token不合法时可以直接通过返回提示信息给前端,但是如果是由于token过期校验不通过的话,一般怎么处理呢?

个人思路:
OAuth2.0有一个刷新token的接口/oauth/token?grant_type=refresh_token,如果调用check_token校验过期时,会获取前端传过来的refresh_token值,然后拿到该值后再去调用/oauth/token?grant_type=refresh_token获取最新的token,如果获取成功则把请求转发给user-server服务。

在返回结果的时候,网关处是不是应该把刚刚申请的最新的token信息也要传给前端,然后前端在刷新一下token信息。

刷新token处理还有没有其它的处理方法?


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

token 设置有有效期和刷新有效期, token并不是直接返回的,服务器直接放在cookie里,浏览器差不多设置一天的时间 , 如果用户浏览器 在设置的时间间隔内一直有访问就刷新redis里的token有效期, 反之服务端刷新浏览器的cookie, 当redis的有效期过了, 那就应该重新登录了
Snipaste_2020-07-17_17-50-50.png


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...