出于某种原因,当我尝试使用Facebook或Google登录Laravel Socialite时,我会遇到此异常:
AbstractProvider.php第199行中的InvalidStateException:
当我的SocialiteController尝试从facebook驱动程序中获取用户时,会抛出异常。
public function callback(SocialAccountService $service, $provider)
{
try {
var_dump(Socialite::driver('facebook')->user());
以下是AbstractProvider.php中似乎抛出实际异常的部分:
public function user()
{
if ($this->hasInvalidState()) {
throw new InvalidStateException;
}
我一直在关注本教程https://blog.damirmiladinov.com/laravel/laravel-5.2-socialite-twitter-login.html#.WFK0BfnhCUk。由于某种原因,登录在上周工作正常。
我读了其他文章说我应该更改config / session.php所以域名不是null但是我当前的域名(在我的情况下是localhost:8000,因为我用XAMPP运行本地),并刷新Laravel缓存等。但它没有工作
答案 0 :(得分:1)
我发现我的Laravel应用程序cookie丢失了,这导致了InvalidStateException异常。
我还注意到每次HTTP请求后都没有重新创建cookie。当我将Config / Session.php中的域值从当前的(" localhost")更改为null(默认值)时,将再次重新创建cookie。
答案 1 :(得分:-1)
尝试
session()->put('state', $request->input('state'));
$user = Socialite::driver('facebook')->user();