Я пытаюсь настроить систему аутентификации с Laravel 4 с помощью входа в систему Facebook. Я использую пакет madewithlove/laravel-oauth2 для Laravel 4.Laravel 4 Auth с Facebook (нет аутентификации пароля)
Конечно, нет пароля для добавления в мою базу данных при входе пользователя в систему с помощью Facebook. Тем не менее, я пытаюсь проверить, есть ли идентификатор пользователя в базе данных, чтобы определить, должен ли я создать новый объект или просто войти в текущий. Я хотел бы использовать команды 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();
}
Когда я запускаю это, я получаю ошибку:
EDIT: Когда Я использую: $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
Я не знаю, почему это дает мне эту ошибку. У вас есть предложения о том, как я могу это сделать? Спасибо за помощь.
вы можете показать свой код для класса Fan ?? –
Код модели вентилятора добавлен. – user1072337
Ошибка объясняет все это ... вы расширяете свою модель вентилятора, чтобы использовать Eloquent, где, как и для Auth, вы должны также реализовать UserInterface, RemindableInterface –