无法从实时服务器中的谷歌获取刷新访问令牌

时间:2015-05-28 10:41:25

标签: google-api laravel-5 google-api-php-client google-api-console

我正在创建一个google应用程序来获取用户的Google帐户数据。当我在本地使用oauth 2和access_type =' offline'时,它会要求离线访问权限,我可以获得刷新访问令牌。但是,如果我为我的实时服务器使用相同的代码,它不会要求离线许可,我也无法获得刷新令牌。我正在使用oriceon oauth 5软件包进行我的laravel应用程序。我确实喜欢以下

    $googleService = OAuth::consumer('Google');
    $googleService->setAccessType('offline');` 

你的建议对我有帮助。谢谢

1 个答案:

答案 0 :(得分:0)

我找到了答案,实际上应用程序将我的access_token存储在我的计算机cookie中,并且每次使用会话时都会发送我的密钥,因此我无法获得刷新令牌。所以你需要做的是,你需要在你的重定向uri(redirect_uri / approval_prompt = force)中添加一个名为approval_prompt的选项作为强制。每次应用程序调用时,它都会询问脱机访问令牌。请查看以下链接以供参考

support approval_prompt: force to get new `refresh_token

Why does Google OAuth2 re-ask user for permission when i send them to auth url again