【问题标题】:This page isn't working redirected you too many times此页面无法正常工作重定向您太​​多次
【发布时间】:2018-04-18 05:01:05
【问题描述】:

我正在尝试使用 Laravel 5 和 Facebook API 中的 Socialite 库来创建“使用 Facebook 登录”功能。我按照教程中的所有步骤在 Facebook 开发人员上创建了一个应用程序,但是当我单击登录按钮时,它崩溃并出现错误“此页面无法正常工作,将您重定向了太多次”。下面是我的回调代码。为什么这不起作用?

public function handleFacebookCallback()
{
    try {
        $user = Socialite::driver('facebook')->user();
        $create['name'] = $user->getName();
        $create['email'] = $user->getEmail();
        $create['facebook_id'] = $user->getId();

        $userModel = new User;
        $createdUser = $userModel->addNew($create);
        Auth::loginUsingId($createdUser->id);

        return redirect()->route('home');

    } catch (Exception $e) {
        dd($e);
        return redirect('auth/facebook');

    }
}

【问题讨论】:

  • 分享addNew函数?
  • 请向我们展示您使用中间件的完整路线
  • 我认为你使用了错误的重定向语法,试试这个:return redirect()->to('/home');
  • 我这样做是因为它是凌晨 1:00,我花了 2.5 个小时在谷歌上搜索,基本上互联网上所有关于“此页面无法正常工作。重定向你太多次”的答案都是“清除你的cookie”和“使用不同的浏览器”,这完全不符合标准。

标签: laravel facebook laravel-5 facebook-javascript-sdk facebook-php-sdk


【解决方案1】:

您收到此错误消息是因为 try 块中的代码失败并执行了 catch 块,该块将请求重定向回服务器,服务器一遍又一遍地将请求发送回浏览器。 Die and dumping (dd) 异常显示此错误消息:

General error: 1364 Field 'password' doesn't have a default value

“创建新用户”功能不起作用,因为数据库正在发回一个致命错误。数据库正在死去,因为插入中的密码没有值,而表需要它。当您考虑它时,这是有道理的,因为用户是通过 Facebook 创建帐户而不是创建用户 ID 和密码。

使 user 表中的密码列可以为 null 可修复此“[x] 重定向您太​​多次”错误。

【讨论】:

    猜你喜欢
    • 2021-03-21
    • 1970-01-01
    • 2023-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 2017-11-05
    • 1970-01-01
    相关资源
    最近更新 更多