4

好吧,我正在尝试在 laravel 5.1 中实现使用社交名流使用 google 登录,我的范围没有问题,但我需要将 access_type 实现为离线,有人知道,我如何在社交名流中为 laravel 配置它?

这是我的连接线

$scopes = [
        'https://www.googleapis.com/auth/plus.me',
        'https://www.googleapis.com/auth/plus.profile.emails.read',
        'https://www.googleapis.com/auth/gmail.readonly'

    ];
    return Socialize::driver('google')->scopes($scopes)->setAccessType('offline')->redirect();

感谢您的帮助

4

2 回答 2

21

自上次回答此问题以来可能会进行更新;看起来 Taylor 添加了传递可选参数的功能。with使用关联数组调用该方法:

$scopes = [
    'https://www.googleapis.com/auth/plus.me',
    'https://www.googleapis.com/auth/plus.profile.emails.read',
    'https://www.googleapis.com/auth/gmail.readonly'
];
$parameters = ['access_type' => 'offline'];
return Socialite::driver('google')->scopes($scopes)->with($parameters)->redirect();
于 2016-03-17T16:10:56.883 回答
0

我昨天在玩 Gmail API 时确实遇到了这个问题。

我假设您想要为已通过身份验证的用户获取刷新令牌。我在社交名流中找不到本地执行此操作的方法(我不确定您从哪里获得setAccessType()方法,因为它在 Google 或抽象提供程序类中不存在)。

最后,我只是临时更改了getAuthUrl()方法返回的字符串以添加最后的查询字符串参数,经过身份验证过程,然后还原文件(以免下次我更新时 Composer 抱怨我)。

这不是一个理想的解决方案,但如果您只是想重新验证自己,希望它会有所帮助。

于 2015-07-14T22:21:59.347 回答