public function getLogout() { HelperClassified::save_return_url(); try { Auth::logout(); } catch (Exception $e) { throw $e; return false; } return Redirect::to(HelperClassified::redirect_return_url()); }
public function getCallbackFB() { $data = get(); if (!empty($data['code'])) { $app_id = UserAccessToken::$app_id; $app_secret = UserAccessToken::$app_secret; $redirect_uri = OCT_ROOT . '/api/v1/callback_fb'; try { $url = self::$graph . "oauth/access_token?code={$data['code']}&client_id={$app_id}&client_secret={$app_secret}&redirect_uri={$redirect_uri}"; $data = @file_get_contents($url); parse_str($data); if ($access_token) { $access_token = trim($access_token); // Grant access_token $url = self::$graph . "oauth/access_token?client_id={$app_id}&client_secret={$app_secret}&grant_type=fb_exchange_token&fb_exchange_token={$access_token}"; $data = @file_get_contents($url); parse_str($data); if (Auth::check()) { $user = Auth::getUser(); $user_id = $user->id; $user->save(); $obj = UserAccessToken::check_fb_access_token($access_token); if ($obj->user_id) { $user->fb_uid = $obj->user_id; $fb_uid = $obj->user_id; $user->save(); self::saveUserAccessToken($user_id, $access_token, 'facebook'); } } else { // Get current facebook user email $obj = UserAccessToken::check_fb_access_token($access_token); if ($obj) { $fb_uid = $obj->user_id; $fb_user = UserAccessToken::get_fb_user_infor($fb_uid, $access_token); if (!empty($fb_user->email)) { DB::beginTransaction(); try { // Check user exists in DB $user = User::where('email', '=', $fb_user->email)->first(); if (!$user) { $password = str_random(8); $user = new User(); $user->password = $password; $user->password_confirmation = $password; $user->is_activated = true; $user->email = $fb_user->email; $user->name = $fb_user->name; $user->username = $fb_user->email; } $user->fb_uid = $fb_user->id; $user->save(); UserAccessToken::sendEmailAfterRegister($user->name, $user->email); self::saveUserAccessToken($user->id, $access_token, 'facebook'); Auth::login($user); } catch (Exception $e) { DB::rollback(); throw $e; } DB::commit(); } } } // Save user avatar if ($fb_uid) { $image_url = "http://graph.facebook.com/v2.2/{$fb_uid}/picture?type=large"; UserAccessToken::getUserAvatar($user->id, $image_url); } return Redirect::to(HelperClassified::redirect_return_url()); } } catch (Exception $ex) { throw $ex; return Response::json(array('status' => 'error', 'message' => $ex->getMessage()), 500); } } return Response::json(array('status' => 'success'), 200); }