加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Laravel 5在AbstractProvider.php中创建InvalidStateException

发布时间:2020-12-14 19:50:06 所属栏目:大数据 来源:网络整理
导读:我正在尝试使用Socialize在laravel 5中使用facebook登录. 这是我的路线文件代码. Route::get('fb',function ($facebook = "facebook"){ $provider = Socialize::with($facebook); if (Input::has('code')) { $user = $provider-user(); return var_dump($us
我正在尝试使用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上完成的.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读