/**
  * 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);
 }
Ejemplo n.º 2
0
 /**
  * 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();
 }
Ejemplo n.º 3
0
 /**
  * @param \Illuminate\Http\Request $request
  *
  * @return bool
  */
 protected function isSameDomain($request)
 {
     return $request->headers->get('Origin') == $request->getSchemeAndHttpHost();
 }
Ejemplo n.º 4
0
 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');
         }
     }
 }
Ejemplo n.º 5
0
 public function getSchemeAndHttpHost()
 {
     return $this->request->getSchemeAndHttpHost();
 }