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处理还有没有其它的处理方法?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
token 设置有有效期和刷新有效期, token并不是直接返回的,服务器直接放在cookie里,浏览器差不多设置一天的时间 , 如果用户浏览器 在设置的时间间隔内一直有访问就刷新redis里的token有效期, 反之服务端刷新浏览器的cookie, 当redis的有效期过了, 那就应该重新登录了