2016-12-15 68 views
0

出于某种原因,当我尝试用Laravel社会名流登录任何与Facebook或谷歌我得到这个异常:Laravel名媛:InvalidStateException在AbstractProvider.php线路199:

InvalidStateException在AbstractProvider.php线路199:

当我试图从Facebook驱动程序获取用户时,从我的SocialiteController中抛出异常。

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,使得域不为空,但是我的当前域(在我的例子中是localhost:8000,因为我使用XAMPP运行本地),并刷新Laravel缓存等。不行。

+0

我遇到了类似的事情时,我使用的是无状态的API ...检查了这https://laracasts.com/discuss/channels/general-discussion/social-integration-without- using-the-session?page = 1 – Sherif

+0

谢谢。我还没有查看智威汤逊,但我目前正在使用Laravel会话(作为文件存储)。 – Olof84

回答

1

我发现我的Laravel应用程序cookie丢失,导致InvalidStateException异常。

我还注意到,在每个HTTP请求后都没有重新创建cookie。当我将Config/Session.php中的域值从当前的域(“本地主机”)更改为空(默认值)时,再次重新创建了cookie。

-1

尝试

session()->put('state', $request->input('state')); 
$user = Socialite::driver('facebook')->user();