2017-12-29 48 views
0

내 프로젝트가 Laravel 5.4에서 실행 중이고 passport을 사용하여 API를 통해 bearer token으로 인증합니다. 모든 것이 잘 작동하지만 인증되지 않은 사용자가 인증을 필요로하는 자원에 도달 할 때, 사용자는 오류 메시지 405 method not allowed enter image description here사용자가 허가하지 않은 경우 Laravel 여권 사용자 정의 오류 메시지 및 상태 코드

를 얻을하지만 응답이 401 unauthorized되고 싶어요. 어떻게 이것을 변경하고 예외 대신 메시지와 함께 응답 만 보낼 수 있습니까? 나는 조사를했지만 아무것도 찾을 수 없었다. 나는 허가 auth:api을 위해 표준 laravel 미들웨어를 사용한다. 내 경로가 미들웨어로 그룹화되어 있습니다.

Route::group(['middleware' => 'auth:api'], function() { 
    // these routes should return 401 if user not authenticated 
} 

답변

1

틀린 끝점을 치기 때문에 잘 허용되지 않는 예외가 발생합니다. 당신은 get 또는 vice verca에 게시하고 있습니다.

당신이 예를 원하는 당신이 예외를 조정할 수 있습니다 App\Exception로 이동이 handler.php in render() 방법을 열면 당신이 당신의 예외를 수정할 수 있습니다 그러나 : $exception는 예외 개체의 인스턴스의 경우는 단지 확인

public function render($request, Exception $exception) 
{ 
    if($exception instanceof \Illuminate\Auth\AuthenticationException){ 

      return response('unauthorized', 401); 

    } 
     return parent::render($request, $exception); 
} 

방법 handler()에를, 그렇다면 원하는대로 응답을 수정할 수 있습니다. laravel 예외는 다음을 따르십시오. link

+0

내가 처리 할 수있는 장소를 찾을 수 없습니다. 고맙습니다! –