/** * Start JSON API support. * * This middleware: * - Loads the configuration for the named API that this request is being routed to. * - Registers the API in the service container. * - Triggers client/server content negotiation as per the JSON API spec. * * @param Request $request * @param Closure $next * @param $namespace * the API namespace, as per your JSON API configuration. * @return mixed */ public function handle($request, Closure $next, $namespace) { /** @var ApiFactory $factory */ $factory = $this->container->make(ApiFactoryInterface::class); /** @var ServerRequestInterface $request */ $serverRequest = $this->container->make(ServerRequestInterface::class); /** @var RequestFactoryInterface $requestFactory */ $requestFactory = $this->container->make(RequestFactoryInterface::class); /** Build and register the API */ $api = $factory->createApi($namespace, $request->getSchemeAndHttpHost()); $this->container->instance(ApiInterface::class, $api); /** Build and register the JSON API request */ $jsonApiRequest = $requestFactory->build($api, $serverRequest); $this->container->instance(RequestInterface::class, $jsonApiRequest); /** Override the current page resolution */ AbstractPaginator::currentPageResolver(function () { /** @var PaginatorInterface $paginator */ $paginator = $this->container->make(PaginatorInterface::class); return $paginator->getCurrentPage(); }); return $next($request); }
/** * Gets the scheme and HTTP host. * * If the URL was called with basic authentication, the user * and the password are not added to the generated string. * * @return string The scheme and HTTP host * @static */ public static function getSchemeAndHttpHost() { //Method inherited from \Symfony\Component\HttpFoundation\Request return \Illuminate\Http\Request::getSchemeAndHttpHost(); }
/** * @param \Illuminate\Http\Request $request * * @return bool */ protected function isSameDomain($request) { return $request->headers->get('Origin') == $request->getSchemeAndHttpHost(); }
public function processFBLogin(Request $request) { $fb = new Facebook(['app_id' => config('facebook.app_id'), 'app_secret' => config('facebook.app_secret'), 'default_graph_version' => 'v2.2']); $redirect_url = $request->getSchemeAndHttpHost() . '/fblogin'; $code = $request->input('code'); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); if (!$accessToken->isLongLived()) { $oAuth2Client = $fb->getOAuth2Client(); // Exchanges a short-lived access token for a long-lived one $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } $fb->setDefaultAccessToken($accessToken); $response = $fb->get('/me?fields=id,name,email'); $plainOldArray = $response->getDecodedBody(); //if user exist sign them in otherwise sign them up $query = ParseUser::query(); $query->equalTo("username", 'FB:' . $plainOldArray['id']); $results = $query->find(); if (count($results) === 1) { $user = ParseUser::logIn('FB:' . $plainOldArray['id'], config('facebook.upwd')); $user->set('social', "facebook:" . $accessToken); return $this->determineRoute($request); } else { $user = new ParseUser(); $user->set("username", 'FB:' . $plainOldArray['id']); $user->set("password", config('facebook.upwd')); $user->set("email", "FB_" . $plainOldArray['email']); $user->set("name", $plainOldArray['name']); $user->set("realEmail", $plainOldArray['email']); $user->set("social", "facebook:" . $accessToken); try { $user->signUp(); return $this->determineRoute($request); } catch (ParseException $ex) { var_dump("Save Error"); // Show the error message somewhere and let the user try again. echo "Error: " . $ex->getCode() . " " . $ex->getMessage(); var_dump($plainOldArray['email']); var_dump($accessToken); die; } } } catch (FacebookRequestException $ex) { // When Facebook returns an error echo "Error: " . $ex->getCode() . " " . $ex->getMessage(); die; } catch (\Exception $ex) { // When validation fails or other local issues //var_dump($plainOldArray['email']); //var_dump($accessToken); echo "Error: " . $ex->getCode() . " " . $ex->getMessage(); die; } if (!empty($accessToken)) { // Logged in. //$access_token = $helper->getAccessToken(); echo "LOGGED IN"; die; } else { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; exit; } else { return redirect()->route('login'); } } }
public function getSchemeAndHttpHost() { return $this->request->getSchemeAndHttpHost(); }