google oauth2:为Web服务器应用程序上的授权用户重新获取refresh_token

Tom*_*ler 3 google-contacts-api oauth-2.0

我在网络服务器上使用oauth2,流程完美无缺(https://developers.google.com/accounts/docs/OAuth2WebServer).

但是,我有一些情况需要重新获取refresh_token(比方说,例如,refresh_token已经"丢失").

在这种情况下,当我再次进入第1阶段和第2阶段时,我只获得access_token而不是refresh_token.如果用户通过他的Google帐户控制台撤消权限并再次进入第1阶段和第2阶段,我将获得一个新的refresh_token.

这是已知的oauth2行为吗?有没有办法强制一个新的refresh_token或再次获得相同的刷新?

Tom*_*ler 8

来自https://developers.google.com/accounts/docs/OAuth2WebServer:

要点:当您的应用程序收到刷新令牌时,存储该刷新令牌以供将来使用非常重要.如果您的应用程序丢失了刷新令牌,则必须在获得另一个刷新令牌之前重新提示用户同意.如果需要重新提示用户同意,请在授权代码请求中包含approval_prompt参数,并将值设置为force.