public function doFbLogin() { // Endpoint that is redirected to after an authentication attempt /** * Obtain an access token. */ try { $token = Facebook::getTokenFromRedirect(); if (!$token) { return Redirect::to('/login')->with('error', 'Unable to obtain access token.'); } } catch (FacebookQueryBuilderException $e) { return Redirect::to('/login')->with('error', $e->getPrevious()->getMessage()); } if (!$token->isLongLived()) { /** * Extend the access token. */ try { $token = $token->extend(); } catch (FacebookQueryBuilderException $e) { return Redirect::to('/')->with('error', $e->getPrevious()->getMessage()); } } $actoken = $token; Facebook::setAccessToken($token); /** * Get basic info on the user from Facebook. */ try { $fbData = Facebook::object('me')->fields('id', 'name', 'email')->get(); $count = DB::collection('users')->where('email', $fbData['email'])->count(); if ($count > 0) { $data = array(); $data['fbId'] = $fbData['id']; $data["name"] = $fbData['name']; $data["access_token"] = $token; DB::collection('users')->where('email', $fbData['email'])->update($data, array('upsert' => true)); } else { $user = new FbUser(); $user->fbId = $fbData['id']; $user->email = $fbData['email']; $user->name = $fbData['name']; $user->access_token = $actoken; $user->save(); } } catch (FacebookQueryBuilderException $e) { return Redirect::to('/login')->with('error', $e->getPrevious()->getMessage()); } // echo $token; // exit; // Log the user into Laravel // Facebook::auth()->login($user); $href = '/register'; return '<script>window.opener.location.href="' . $href . '";self.close();</script>'; }