Laravel Socialite:AbstractProvider.php第199行中的InvalidStateException:

时间:2016-12-15 11:48:06

标签: facebook laravel authentication

出于某种原因,当我尝试使用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缓存等。但它没有工作

2 个答案:

答案 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();