在第一次登录后获得Google oauth刷新令牌



我已经实现了一个google oauth注册。当用户通过google点击login时,我可以用提供的代码请求令牌。

然而,令牌只在用户第一次注册/登录时包含刷新令牌。以后所有使用验证码获取令牌的尝试都只返回访问令牌,而不返回刷新令牌。我必须在用户的谷歌设置中手动撤销应用程序权限,以便强制一个新的权限提示符,为我提供一个新的刷新令牌。

是否有某种方法可以请求带有验证码的刷新令牌?也就是说,不只是在第一次登录时。

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

但是,强制显示同意屏幕是可能的,这会导致发送refresh_token。

可以添加

prompt=consent

到初始url。或者如果你使用PHP API,你可以这样设置:

$client->setApprovalPrompt('consent');

最新更新