Мне нужна помощь сейчас Я не могу войти в систему с facebook, посмотрим мой код.Laravel 4 jenssegers-mongodb - как я могу реализовать Auth с facebook
$code = Input::get('code');
if (strlen($code) == 0)
return Redirect::to('/')->with('message', 'There was an error communicating with Facebook');
$facebook = new Facebook(Config::get('facebook'));
$uid = $facebook->getUser();
if ($uid == 0)
return Redirect::to('/')->with('message', 'There was an error');
$me = $facebook->api('/me');
$existing_user = User::whereFBid($uid);
if (empty($existing_user))
{
$user['name'] = $me['first_name'].' '.$me['last_name'];
$user['email'] = $me['email'];
$user['photo'] = 'https://graph.facebook.com/'.$me['username'].'/picture?type=large';
$user['fbid'] = $uid;
$user['username'] = $me['username'];
$user['access_token'] = $facebook->getAccessToken();
$rsUser = User::registerUser($user);
}
else
{
$user = new User();
$user->fbid = $uid;
Auth::login($user);
}
return Redirect::to('/')->with('message', 'Logged in with Facebook');
Мой маршрут Файл
Route::get('/', function()
{
$data = array();
if (Auth::check())
{
$data = Auth::user();
var_dump($data);exit;
}
else
{
echo 'auth check failed';exit;
}
return View::make('hello', array('data'=>$data));
});
Мои модели пользователя уже добавлено использование Jenssegers \ MongoDB \ модель как красноречивы
Auth :: Логин ($ пользователю) это пропуск, но когда мой код перенаправления '/' и Auth :: check() это не работа, а другое условие. Как я могу это решить, кто может помочь? Большое вам спасибо, извините за мой английский.
метод whereFBid в моей модели общественная статическая функция whereFBid. ($ fbid) { $ rsUser = DB :: collection ('users') -> где ('fbid', $ fbid) -> first(); return $ rsUser; } и я делаю контроллер от вашего совета, но это ошибка: Аргумент 1 передается Осветить \ Auth \ Guard :: логин() должен реализовать интерфейс ILLUMINATE \ Auth \ пользовательским интерфейсом, массив заданного –
Почему? Хорошо, игнорируйте этот статический метод. Прочитайте это: http://laravel.com/docs/eloquent#query-scopes или измените «$ existing_user = Пользователь :: whereFBid ($ uid);» to "$ existing_user = User :: where ('fbid', '=', $ uid) -> first();" и попробуй еще раз. Использование статических методов в моделях, вероятно, не является (и никогда не будет) способом. – Jaco