Skimia\ApiFusion
  • Namespace
  • Class
  • Tree
  • Todo
  • Download

Namespaces

  • PHP
  • Skimia
    • ApiFusion
      • Annotations
        • ApiRouting
          • Annotations
      • Auth
      • Console
        • Commands
      • Domain
        • Contracts
        • Exceptions
        • Traits
        • Users
        • Validation
      • Facade
      • Http
        • Controllers
          • Api
      • Routing

Classes

  • Skimia\ApiFusion\Annotations\ApiRouting\Annotations\ApiEndpoint
  • Skimia\ApiFusion\Annotations\ApiRouting\Annotations\ApiResource
  • Skimia\ApiFusion\Annotations\ApiRouting\ApiRoutingAnnotationsServiceProvider
  • Skimia\ApiFusion\Annotations\ApiRouting\Scanner
  • Skimia\ApiFusion\ApiFusionServiceProvider
  • Skimia\ApiFusion\Auth\Sentinel
  • Skimia\ApiFusion\Auth\User
  • Skimia\ApiFusion\Console\Commands\GenerateDomainApi
  • Skimia\ApiFusion\Domain\ResourceService
  • Skimia\ApiFusion\Domain\ResourceServiceModel
  • Skimia\ApiFusion\Domain\Users\EloquentServiceUserAdapter
  • Skimia\ApiFusion\Domain\Users\SentinelServiceUserAdapter
  • Skimia\ApiFusion\Domain\Validation\Bindings
  • Skimia\ApiFusion\Domain\Validation\Validator
  • Skimia\ApiFusion\Facade\RouteFusion
  • Skimia\ApiFusion\Http\Controllers\Api\ApiController
  • Skimia\ApiFusion\Http\Controllers\Api\ResourceServiceController
  • Skimia\ApiFusion\Http\Controllers\Api\SentinelSessionsController
  • Skimia\ApiFusion\Routing\RouteFusion

Interfaces

  • Skimia\ApiFusion\Domain\Contracts\InputValidatorContract
  • Skimia\ApiFusion\Domain\Contracts\ResourceServiceModelContract
  • Skimia\ApiFusion\Domain\Contracts\ServiceUserContract

Traits

  • Skimia\ApiFusion\Domain\Traits\CheckableTrait

Exceptions

  • Exception
  • Skimia\ApiFusion\Domain\Exceptions\AuthorisationException
  • Skimia\ApiFusion\Domain\Exceptions\DomainException
  • Skimia\ApiFusion\Domain\Exceptions\RequiredInputValidatorException
  • Skimia\ApiFusion\Domain\Exceptions\ValidationException
 1 <?php
 2 
 3 namespace  Skimia\ApiFusion\Auth;
 4 
 5 use Illuminate\Support\Str;
 6 use Illuminate\Http\Request;
 7 use Dingo\Api\Routing\Route;
 8 use Dingo\Api\Auth\Provider\Authorization;
 9 use Cartalyst\Sentinel\Sentinel as AuthManager;
10 use Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException;
11 use Symfony\Component\HttpKernel\Exception\BadRequestHttpException;
12 
13 class Sentinel extends Authorization
14 {
15     /**
16      * Illuminate authentication manager.
17      *
18      * @var \Illuminate\Auth\AuthManager
19      */
20     protected $auth;
21 
22     /**
23      * Basic auth identifier.
24      *
25      * @var string
26      */
27     protected $identifier;
28 
29     /**
30      * Create a new basic provider instance.
31      *
32      * @param \Illuminate\Auth\AuthManager $auth
33      * @param string                       $identifier
34      *
35      * @return void
36      */
37     public function __construct(AuthManager $auth, $identifier = 'email')
38     {
39         $this->auth = $auth;
40         $this->identifier = $identifier;
41     }
42 
43     /**
44      * Authenticate request with Basic.
45      *
46      * @param \Illuminate\Http\Request  $request
47      * @param \Illuminate\Routing\Route $route
48      *
49      * @return mixed
50      */
51     public function authenticate(Request $request, Route $route)
52     {
53         $this->validateAuthorizationHeader($request);
54 
55         if ($user = $this->auth->getUser()) {
56             return $user;
57         }
58 
59         throw new UnauthorizedHttpException(null, 'Please log in before perform this query.');
60     }
61 
62     /**
63      * Validate the requests authorization header for the provider.
64      *
65      * @param \Illuminate\Http\Request $request
66      *
67      * @throws \Symfony\Component\HttpKernel\Exception\BadRequestHttpException
68      *
69      * @return bool
70      */
71     public function validateAuthorizationHeader(Request $request)
72     {
73         if (Str::startsWith(strtolower($request->headers->get('shield')), $this->getAuthorizationMethod())) {
74             return true;
75         }
76 
77         throw new BadRequestHttpException;
78     }
79 
80     /**
81      * Get the providers authorization method.
82      *
83      * @return string
84      */
85     public function getAuthorizationMethod()
86     {
87         return 'sentinel';
88     }
89 }
90 
Skimia\ApiFusion API documentation generated by ApiGen