首次登录后获取google oauth刷新令牌

首次登录后获取google oauth刷新令牌,oauth,google-oauth,Oauth,Google Oauth,我已经实现了GoogleOAuth注册。 当用户单击google登录时,我可以使用提供的代码请求令牌 但是,这些令牌仅在用户第一次注册/登录时包含刷新令牌。 以后所有使用身份验证代码获取令牌的尝试都只返回访问令牌,而不返回刷新令牌。 我必须在用户的google设置中手动撤销应用权限,以强制执行新权限提示,该提示为我提供新的刷新令牌 是否有某种方法可以使用身份验证代码请求刷新令牌?也就是说,不仅仅是在第一次登录时。我找到了解决方案。刷新令牌仅在向用户显示同意屏幕时随响应一起发送。这只在第一次登录时

我已经实现了GoogleOAuth注册。 当用户单击google登录时,我可以使用提供的代码请求令牌

但是,这些令牌仅在用户第一次注册/登录时包含刷新令牌。 以后所有使用身份验证代码获取令牌的尝试都只返回访问令牌,而不返回刷新令牌。 我必须在用户的google设置中手动撤销应用权限,以强制执行新权限提示,该提示为我提供新的刷新令牌


是否有某种方法可以使用身份验证代码请求刷新令牌?也就是说,不仅仅是在第一次登录时。

我找到了解决方案。刷新令牌仅在向用户显示同意屏幕时随响应一起发送。这只在第一次登录时发生,一旦用户授予权限,屏幕将不再显示

但是,可以强制显示同意屏幕,这将导致发送刷新令牌

您可以通过添加

prompt=consent
到oauth url。 或者,如果您使用php api,您可以如下设置:

$client->setApprovalPrompt('consent');

嗨,克里斯,你能发一段你的代码吗?为什么每次你都想得到一个刷新令牌?刷新令牌是用来存储和交换访问令牌的。@user2705223我不想每次都使用它。但是我希望能够显式地请求它,以防在第一次发生错误时无法保存它。啊,在这种情况下,您应该设置prompt=approve,正如您所发现的那样