Laravel 5在AbstractProvider.php中创建InvalidStateException

前端之家收集整理的这篇文章主要介绍了Laravel 5在AbstractProvider.php中创建InvalidStateException前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试使用Socialize在laravel 5中使用facebook登录.

这是我的路线文件代码.

Route::get('fb',function ($facebook = "facebook")
{
    $provider = \Socialize::with($facebook);      
    if (Input::has('code'))
    {
        $user = $provider->user();
        return var_dump($user);
    } else {
        return $provider->scopes(['public_profile','user_friends'])->redirect();
    }
});

登录成功,我得到代码,但得到$provider-> user()的时间我得到错误.

InvalidStateException in AbstractProvider.PHP line 161

我只是评论出发出错误代码(如在@Dipesh Shihora的回答中),我感到很不舒服,所以我进一步挖了一下.我发现错误是由于会话问题引起的(至少在我的情况下).

我的开发服务器是根据this answer中给出的说明设置的.基本上,我通过使用看似公共可访问地址的回调URL“欺骗”Google.

InvalidStateException问题出现在我面前,因为我正在http:// localhost / login访问我的登录页面重定向到Google的登录页面,然后返回http://myapp.example.com/callback.问题是会话密钥存储在cookie中 – 它最初是http:// localhost的cookie,但是当我重定向到不同的URL时,cookie(以及会话密钥)无法访问.因此,更新后会话状态值不存在并抛出异常.

解决方案?确保我在开发计算机上的所有浏览都是在http://myapp.example.com上完成的,而不是在http:// localhost上完成的.

猜你在找的Laravel相关文章