示例#1
1
 /**
  * Get the currently authenticated user or null.
  *
  * @return Illuminate\Auth\UserInterface|null
  */
 protected function user($request)
 {
     if (!($token = $this->auth->setRequest($request)->getToken())) {
         return 401;
     }
     try {
         $user = $this->auth->authenticate($token);
     } catch (JWTException $e) {
         return 401;
     }
     if (!$user) {
         return 401;
     }
     return $user;
 }
示例#2
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, \Closure $next)
 {
     if (!($token = $this->auth->setRequest($request)->getToken())) {
         return response()->json(\JsonHelper::getErrorResponse(\HttpResponse::HTTP_BAD_REQUEST, 'Token is missing.'), \HttpResponse::HTTP_BAD_REQUEST);
     }
     $user = $this->auth->authenticate($token);
     if (!$user) {
         return response()->json(\JsonHelper::getErrorResponse(\HttpResponse::HTTP_NOT_FOUND, 'User not found.'), \HttpResponse::HTTP_NOT_FOUND);
     }
     return $next($request);
 }
示例#3
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     // Step 1. Fail immediately if we don't have a token in the request.
     if (!($token = $this->auth->setRequest($request)->getToken())) {
         return new JsonResponse(['error' => 'authorization required'], Response::HTTP_UNAUTHORIZED);
     }
     try {
         // Step 2. Validate the given token.
         $member = $this->auth->authenticate($token);
         $permissions = array_merge(['level' => 1000, 'roles' => []], array_get(config('route.permissions'), $request->route()->getName(), []));
         // This ensures that super roles are not overwritten by
         // route permission configurations.
         $permissions['roles'] = array_merge($permissions['roles'], $this->roles);
         $level = $permissions['level'];
         // Step 3. Check the auth level encoded in the token.
         if ($this->auth->getPayload()->get('level') < $level) {
             return new JsonResponse(['error' => 'authentication level not high enough'], Response::HTTP_FORBIDDEN);
         }
         // Step 4. Verify the role(s) of the member.
         $roles = $permissions['roles'];
         if (!$member->hasRole($roles)) {
             return new JsonResponse(['error' => 'invalid permissions'], Response::HTTP_FORBIDDEN);
         }
         // Step 5. Attach member to the current request.
         $request->member = $member;
     } catch (TokenExpiredException $e) {
         return new JsonResponse(['error' => 'token has expired'], Response::HTTP_FORBIDDEN);
     } catch (TokenInvalidException $e) {
         return new JsonResponse(['error' => 'token is invalid'], Response::HTTP_FORBIDDEN);
     } catch (JWTException $e) {
         return new JsonResponse(['error' => 'unknown error'], Response::HTTP_INTERNAL_SERVER_ERROR);
     }
     // Step 6. ???
     if (!$member) {
         return new JsonResponse(['error' => 'entity does not exist'], Response::HTTP_INTERNAL_SERVER_ERROR);
     }
     // Step 7. Profit!
     return $next($request);
 }
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request $request
  * @param  \Closure $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $this->jwt->setRequest($request)->parseToken()->invalidate();
     return $next($request);
 }
 /**
  * Set the request instance.
  *
  * @param \Tymon\JWTAuth\Request $request
  * @static 
  */
 public static function setRequest($request)
 {
     return \Tymon\JWTAuth\JWTAuth::setRequest($request);
 }
示例#6
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return int
  */
 public function handle($request)
 {
     $token = $this->auth->setRequest($request)->getToken();
     $owner_id = env('acl.middleware.owner_id', 'owner_id');
     return $this->auth->getPayload($token)->get($owner_id);
 }
示例#7
-1
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     if (!($token = $this->auth->setRequest($request)->getToken())) {
         return $this->respond('tymon.jwt.absent', 'Token is not provided.', 400);
     }
     try {
         $user = $this->auth->authenticate($token);
     } catch (TokenExpiredException $e) {
         return $this->respond('tymon.jwt.expired', 'Token has expired.', $e->getStatusCode(), [$e]);
     } catch (JWTException $e) {
         return $this->respond('tymon.jwt.invalid', 'Token is invalid.', $e->getStatusCode(), [$e]);
     }
     if (!$user) {
         return $this->respond('tymon.jwt.user_not_found', 'User not found.', 404);
     }
     $this->events->fire('tymon.jwt.valid', $user);
     return $next($request);
 }