Laravel 5 AbstractProvider.php第200行中的Laravel社交名媛InvalidStateException

Laravel 5 AbstractProvider.php第200行中的Laravel社交名媛InvalidStateException,laravel-5,laravel-socialite,Laravel 5,Laravel Socialite,我正在本地系统(Ubuntu-14.04 64位)中使用Laravel5.3构建一个web应用程序。我用社交名媛在社交网络上签名。我配置了G+、Facebook和GitHug。我使用Chromium作为默认浏览器。最后,问题是我越来越 AbstractProvider.php第200行中的InvalidStateException 经常。我试过了 php artisan缓存:清除 php artisan配置:清除 作曲家转储自动加载 这些都有助于暂时解决问题,再次引发问题 请在此问题上帮助我。如

我正在本地系统(Ubuntu-14.04 64位)中使用Laravel5.3构建一个web应用程序。我用社交名媛在社交网络上签名。我配置了G+、Facebook和GitHug。我使用Chromium作为默认浏览器。最后,问题是我越来越

AbstractProvider.php第200行中的InvalidStateException

经常。我试过了

php artisan缓存:清除

php artisan配置:清除

作曲家转储自动加载

这些都有助于暂时解决问题,再次引发问题


请在此问题上帮助我。

如果AbstractProvider.php第200行在用户状态不存在时触发异常,则表示无法创建用户

如果您创建了一个用户并返回了该用户,那么当您从提供商(facebook、github)获得详细信息时,首先检查您的代码


如果您管理并登录了应用程序,并且从用户表中删除了该用户,请记住也要从社交名媛帐户表中删除数据

我也有同样的问题,我已经读了很多关于这一点的文章,这取决于您在请求登录时所在的URL是否在开头有www。 如果重定向设置为
http://sitename.tld/callback/facebook
如果您从
sitename.tld
发送登录请求,oauth会工作,而如果您从
www.sitename.tld
尝试,则会出现异常


一开始我还不知道如何让它在有www和没有www的情况下工作。

我遇到了这个异常,因为会话中没有保存“状态”。但是我使用的是asPopup方法-
Socialite::driver('facebook')->asPopup()->redirect()所以我保存了会话-
$request->session()->save()。所以我解决了这个问题

或尝试

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

它能工作

我有同样的问题,分三步解决

  • 在顶部添加请求 使用\Http\Request

  • 将请求对象传递给函数

    公共函数handleProviderCallback(请求$Request) { 试一试{ $user=Socialite::driver('facebook')->user(); }捕获(例外$e){ 抛出新异常; } }

  • 清除缓存。 php artisan缓存:清除


  • 我也犯了同样的错误,但我的解决方案有点不同。我在这里张贴只是为了防止其他人继续点击这个帖子,就像我一样,寻找一个可能的答案

    我在Ubuntu18.04桌面上开发,因为它是一个带有GUI的服务器。Socialite在本地工作得很好,但当我通过git将更改推/拉到服务器时,它就退出了

    我通过记录发送到谷歌和从谷歌发送的信息来进行跟踪。我“dd($_GET)”是为了在社交名媛有机会获得信息之前获得一个原始转储,这样我就知道存储了什么,准备使用什么了。所有的信息都在那里,但社交名流似乎并没有“看到”它。当时我推断是我的apache2头配置干扰了Cookie/会话数据

    我在apache2配置中设置了头安全性。其中一个设置是

    Header always edit Set-Cookie ^(.*) "$1;HttpOnly;Secure;SameSite=Strict"
    
    此设置干扰了社交名流所需的cookie信息。我从apache2头配置中删除了该设置(通过注释),并重新启动了Apache。最后,我删除了storage/framework/session/*中的所有会话,并将它们从浏览器中清除,以确保安全。这对我很管用

    在我让它工作后,一个接一个地启用并测试了以下设置,以确保框架能够保护它可以保护的标题信息:

    SESSION_SECURE_COOKIE=true
    
    在my.env文件中

    'http\u only'=>true,
    “同一站点”=>“lax”
    (设置为“严格”似乎不起作用)
    在我的config/session.php文件中

    现在,它又回到了测试安全性和调整事情回来,如果需要的话