Laravel socialite在谷歌登录中将访问类型配置为离线

Jea*_*lez 4 php laravel laravel-5 laravel-socialite

好吧,我正在尝试在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();
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

Dav*_*ian 20

也许是因为这个问题最后一次回答的更新; 看起来泰勒添加了传递可选参数的功能.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 Socialize::driver('google')->scopes($scopes)->with($parameters)->redirect();
Run Code Online (Sandbox Code Playgroud)

  • 这仅适用于全新登录。如果您的refresh_token变回空白,则在参数中添加`“ prompt” =>“ consent select_account”`以强制其再次询问。 (3认同)

Mar*_*ean 0

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

\n\n

我假设您\xe2\x80\x99想要为已经经过身份验证的用户获取刷新令牌。我无法\xe2\x80\x99t找到一种方法在Socialite中本地执行此操作(我\xe2\x80\x99m不确定你\xe2\x80\x99setAccessType()从哪里获取方法,因为它不\xe2\x80\x99t存在于Google 或抽象提供程序类)。

\n\n

最后,我只是暂时更改了getAuthUrl()方法返回的字符串,以将查询字符串参数固定在最后,完成身份验证过程,然后恢复文件(以免下次更新时 Composer 对我抱怨)。

\n\n

它\xe2\x80\x99不是一个理想的解决方案,但如果您\xe2\x80\x99只是想重新验证自己的身份,希望它能有所帮助。

\n