コード例 #1
0
 /**
  * @param         $request
  * @param Closure $next
  * @param         $permission
  *
  * @return mixed
  */
 public function handle($request, Closure $next, $permission)
 {
     $token = JWTAuth::getToken();
     if (!$token) {
         return Response::apiResponse(['httpCode' => 400, 'message' => 'Token não encontrado ou inválido.']);
     }
     try {
         $user = $this->auth->authenticate($token);
     } catch (TokenExpiredException $e) {
         return Response::apiResponse(['httpCode' => 400, 'message' => 'O token de acesso expirou.']);
     } catch (JWTException $e) {
         return Response::apiResponse(['httpCode' => 400, 'message' => 'Token inválido.']);
     }
     if (!$user) {
         return Response::apiResponse(['httpCode' => 404, 'message' => 'Usuário não encontrado.']);
     }
     if (!$user->hasRole(explode('|', $permission))) {
         return Response::apiResponse(['httpCode' => 401, 'message' => 'Acesso não autorizado.']);
     }
     $this->events->fire('tymon.jwt.valid', $user);
     return $next($request);
 }
コード例 #2
0
ファイル: ApiBaseController.php プロジェクト: lfalmeida/lbase
 /**
  * Remove uma entidade específica.
  *
  * @param  int $id Id da entidade que deve ser removida
  *
  * @return \Illuminate\Http\Response
  */
 public function destroy($id)
 {
     try {
         $wasSuccessful = $this->repository->delete($id);
         return Response::apiResponse(['data' => $wasSuccessful]);
     } catch (\Exception $e) {
         return Response::apiResponse(['httpCode' => 400, 'message' => $e->getMessage()]);
     }
 }