Google 使用刷新令牌驱动授权

Google Drive authorization with refresh token

在我的 Java/Ionic2 应用程序中,我通过 REST 服务请求使用刷新令牌对 Google 驱动器进行身份验证,然后使用 access_type=offline,如下所述:https://developers.google.com/identity/protocols/OAuth2WebServer#refresh

服务器响应 200 OK,所以它给了我一个刷新和一个访问令牌,只有在我第一次请求访问时。如果我尝试使用已授权的帐户从同一个浏览器重做所有身份验证过程,即使在注销后,服务器响应也不会给我刷新令牌,而只会给我访问令牌。为什么?有人遇到过这样的问题吗?谢谢

据我所知,刷新令牌仅在用户首次授权时提供。如果您的访问令牌已过期并且您需要新的访问令牌,您应该只获取刷新令牌。正如 token expiration 中所讨论的,您必须编写代码来预测授予的令牌可能不再有效的可能性。那就是你需要一个刷新令牌。

查看此 SO post 以获得更多见解。