google oauth2:为 Web 服务器应用程序上的授权用户重新获取 refresh_token
Posted
技术标签:
【中文标题】google oauth2:为 Web 服务器应用程序上的授权用户重新获取 refresh_token【英文标题】:google oauth2: re-acquiring a refresh_token for an authorized user on a web server application 【发布时间】:2012-05-30 23:53:11 【问题描述】:我在网络服务器上使用 oauth2,流程完美无缺(https://developers.google.com/accounts/docs/OAuth2WebServer)。
但是,在某些情况下,我需要重新获取 refresh_token(例如,refresh_token 已“丢失”)。
在这种情况下,当我再次通过第 1 和第 2 阶段时,我只会获得 access_token 而不是 refresh_token。 如果用户通过他的谷歌账户控制台撤销权限并再次经历第 1 和第 2 阶段,我将获得一个新的 refresh_token。
这是已知的 oauth2 行为吗?有没有办法强制使用新的 refresh_token 或再次获得相同的?
【问题讨论】:
【参考方案1】:来自https://developers.google.com/accounts/docs/OAuth2WebServer:
重要提示:当您的应用程序收到刷新令牌时,请务必存储该刷新令牌以供将来使用。如果您的应用程序丢失了刷新令牌,则它必须在获取另一个刷新令牌之前重新提示用户同意。 如果您需要重新提示用户同意,请在授权码请求中包含approval_prompt参数,并将值设置为强制。
【讨论】:
【参考方案2】:黄油答案是here。您必须在您的令牌发布请求中添加参数approval_prompt=force
。
【讨论】:
以上是关于google oauth2:为 Web 服务器应用程序上的授权用户重新获取 refresh_token的主要内容,如果未能解决你的问题,请参考以下文章
使用 oauth2 从防火墙后的 Wildfly/Keycloak 安全 Web 应用程序调用 oauth2 保护 google 应用程序引擎应用程序
oauth2.0授予Web应用访问用户的Google spreadhseets所需的最小范围是多少?
重定向循环中的 Spring Security OAuth2 (google) web 应用程序