【发布时间】:2017-06-29 19:27:00
【问题描述】:
我正在我的网络应用程序中集成 Facebook 登录,但我收到此错误:
SessionGuard.php 第 407 行中的 ErrorException:参数 1 传递给 Illuminate\Auth\SessionGuard::login() 必须实现接口 Illuminate\Contracts\Auth\Authenticatable,字符串给定,调用 /Applications/XAMPP/xamppfiles/htdocs/shop/vendor/laravel/framework/src/Illuminate/Auth/AuthManager.php 在第 294 行并定义
我发现问题出在我创建新用户时:
public function findOrCreateUser($user, $provider)
{
$authUser = User::where('provider_id', $user->id)->first();
// if user exist login
if ($authUser) {
return $authUser;
}
// if user don't exist - Create new user
$test = DB::table('users')->insert([
'name' => $user->name,
'email' => $user->email,
'provider' => $provider,
'provider_id' => $user->id
]);
return 'Hello'; // just try if it work!
}
用户已正确创建,但出现上述错误。我看不到我的消息“你好”。如果我像这样替换 create 方法:
return User::create([
'name' => $user->name,
'email' => $user->email,
'provider' => $provider,
'provider_id' => $user->id
]);
效果很好。但我不想在创建用户后停止;我想返回另一个视图。
【问题讨论】:
标签: php laravel laravel-5.4