0
我現在需要幫助我無法使用Facebook登錄讓我們來看看我的代碼。Laravel 4 jenssegers-mongodb - 我如何使用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 :: check()這不是工作會去其他條件。我該如何解決這個問題,任何人都可以幫忙?非常感謝,對不起我的英文。
方法whereFBid在我的模型是 公共靜態功能whereFBid。 ($ fbid) { $ rsUser = DB :: collection('users') - > where('fbid',$ fbid) - > first(); return $ rsUser; } ,我做我的控制器從你的建議,但它的錯誤: 參數1傳遞給照亮\身份驗證\衛隊::登錄()必須實現接口照亮\身份驗證\的UserInterface,數組給定 –
這是爲什麼?好的,忽略這個靜態方法。請閱讀:http://laravel.com/docs/eloquent#query-scopes或更改「$ existing_user = User :: whereFBid($ uid);」到「$ existing_user = User :: where('fbid','=',$ uid) - > first();」然後再試一次。在模型中使用靜態方法可能不是(也不會是)要走的路。 – Jaco