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] laravel的数据库配置 找到程序目录结构下.env文件 配置基本的数据库连接信息 DB_HOST=127.0....
[Laravel] Laravel的基本HTTP路由 使用Laravel的基本路由,实现get请求响应,找到文件app/Http/routes....
如果说laravel框架的核心是什么,那么无疑是服务容器。理解服务容器的概念,对于我们使用laravel太重要...
网上有很多解析laravel中间件的实现原理,但是不知道有没有读者在读的时候不明白,作者是怎么想到要用a...
laraveli添加一个或多个用户表,以admin为例。 部分文件内容可能需要根据实际情况修改 创建一个Admin模...
TL;DR: 本文介绍 Laravel 的 FastExcel 组件,文中会对 PHP generators 速览,并给出如何在节约内存的同...