我正在尝试使用 Laravel 4 设置一个通过 Facebook 登录的身份验证系统。我正在为 Laravel 4 使用 madewithlove/laravel-oauth2 包。
当然,当用户使用 Facebook 登录时,没有密码可以添加到我的数据库中。然而,我试图检查用户 ID 是否已在数据库中,以确定是否应该创建一个新实体,或者只是登录当前实体。我想使用 Auth 命令来执行此操作。我有一张名为“粉丝”的桌子。
这就是我正在处理的内容:
$fan = Fan::where('fbid', '=', $user['uid']);
if(is_null($fan)) {
$fan = new Fan;
$fan->fbid = $user['uid'];
$fan->email = $user['email'];
$fan->first_name = $user['first_name'];
$fan->last_name = $user['last_name'];
$fan->gender = $user['gender'];
$fan->birthday = $user['birthday'];
$fan->age = $age;
$fan->city = $city;
$fan->state = $state;
$fan->image = $user['image'];
$fan->save();
return Redirect::to('fans/home');
}
else {
Auth::login($fan);
return Redirect::to('fans/home');
}
风扇型号:
<?php
class Fan extends Eloquent {
protected $guarded = array();
public static $rules = array();
}
当我运行这个时,我收到错误:
Argument 1 passed to Illuminate\Auth\Guard::login() must be an instance of Illuminate\Auth\UserInterface, instance of Illuminate\Database\Eloquent\Builder given
编辑:当我使用时:$fan = Fan::where('fbid', '=', $user['uid'])->first();
我收到错误:
Argument 1 passed to Illuminate\Auth\Guard::login() must be an instance of Illuminate\Auth\UserInterface, null given, called in /Applications/MAMP/htdocs/crowdsets/laravel-master/vendor/laravel/framework/src/Illuminate/Auth/Guard.php on line 368 and defined
我不知道为什么它给我这个错误。您对我如何完成这项工作有什么建议吗?感谢您的帮助。