我在有两个服务器的项目中实现了OAuth2刷新令牌:
-身份验证服务器
-资源服务器
问题:我应该在哪里检查我的访问令牌是否已过期?
方法1:
在向资源服务器发送请求之前,我们仅在客户端上检查访问令牌是否已过期?如果访问令牌已过期,则我们将刷新令牌发送到身份验证服务器以获取新的访问令牌,然后使用新的访问令牌将请求重新发送到资源服务器。
方法2:
请求转到资源服务器,然后在响应中获得invalid_access,然后向具有刷新令牌的身份验证服务器发送请求以获取新的访问令牌,然后再次使用新的访问令牌向资源服务器发送请求?
请您分享您的想法。
谢谢。
答案 0 :(得分:0)
以上几点要点-肯定会推荐方法2-正如您已经指出的那样,它更具弹性。客户端代码也应处理在身份验证服务器中更改的令牌签名密钥。无论技术如何,我总是这样编写OAuth客户端:https://github.com/authguidance-examples/authguidance.mobilesample.android/blob/master/app/src/main/java/com/authguidance/basicmobileapp/plumbing/api/HttpClient.kt