public function loginCallback() { $fb = new Facebook(['app_id' => '709854915792963', 'app_secret' => '74e61a2eaf730835d8b4b39ec3aede8e', 'default_graph_version' => 'v2.2']); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch (Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch (Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (isset($accessToken)) { // Logged in! $access_token = (string) $accessToken; // Now you can redirect to another page and use the // access token from $_SESSION['facebook_access_token'] } $response = $fb->get('/me?fields=id,name,email', $access_token); $me = $response->getGraphUser(); $uid = $me['id']; //return $uid; if ($uid == 0) { return Redirect::to('/')->with('message', 'There was an error'); } //return $user; $profile = App\Profile::whereUid($uid)->first(); //if user does not exist create user if (empty($profile)) { $user = new App\User(); $existinguser = App\User::whereemail($me['email'])->first(); if (empty($existinguser)) { $user->name = $me['name']; $user->email = $me['email']; //$user->uid=$uid; $user->save(); } $profile = new App\Profile(); $profile->photo = 'https://graph.facebook.com/' . $me['id'] . '/picture?type=large'; $user->email = $me['email']; $profile->uid = $uid; $profile->username = $me['name']; $profile = $user->profiles()->save($profile); } //else only update his access token $profile->access_token = $access_token; $profile->save(); $user = $profile->users; //login the user Auth::login($user); return Redirect::to('/dashboard'); }
$facebook = new Facebook(Config::get('facebook')); $params = array('redirect_uri' => url('/login/fb/callback'), 'scope' => 'email'); return Redirect::to($facebook->getLoginUrl($params)); }); Route::get('login/fb/callback', function () { $code = \Illuminate\Support\Facades\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?fields=id,name,email,picture'); $profile = Profile::whereUid($uid)->first(); if (empty($profile)) { $user = new User(); $user->name = $me['name']; $user->email = $me['email']; $user->photo = $me['picture']['data']['url']; $user->save(); $profile = new Profile(); $profile->uid = $uid; $profile->username = $me['email']; $profile = $user->profiles()->save($profile); } $profile->access_token = $facebook->getAccessToken(); $profile->save(); Auth::login($profile->user); return redirect('/');