我正在尝试使用Laravel 5和Facebook API中的Socialite库来创建一个"登录Facebook"特征。我按照教程中的所有步骤在Facebook开发人员上创建了一个应用程序,但是当我点击登录按钮时,它会因错误而崩溃并且#34;此页面不会重定向您太多次。 #34;下面是我的回调代码。为什么这不起作用?
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');
}
}
答案 0 :(得分:0)
您收到此错误消息是因为try块中的代码失败并执行catch块,该块将请求重定向回服务器,该服务器反复将其发送回浏览器。死亡和转储(dd)异常显示此错误消息:
General error: 1364 Field 'password' doesn't have a default value
"创建新用户"功能不起作用,因为数据库发回致命错误。数据库正在死亡,因为插入中没有密码值,表格需要它。这是有道理的,因为用户通过Facebook创建帐户而不是创建用户ID和密码。
使用户表中的密码列能够为空,修复此问题,并且#34; [x]重定向您太多次"错误。