2017-12-29 62 views
0

私のプロジェクトがLaravel 5.4で実行されていて、passportを使用して、bearer tokenのAPIで認証を行っています。すべてが正常に動作しますが、権限のないユーザーが認証を必要とするリソースに到達しようとすると、ユーザーはエラーメッセージ405 method not allowed enter image description hereLaravelパスポートのカスタムエラーメッセージと状態コード

を取得しますが、私は応答が401 unauthorizedになりたいです。 これを変更して、例外ではなくメッセージ付きの応答のみを送信する方法はありますか?私は研究をしましたが、何も見つかりませんでした。私は認可auth:apiのために標準的なlaravelミドルウェアを使用します。ミドルウェアでグループ化された私のルート

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

答えて

1

間違ったエンドポイントにヒットしているため、例外が発生する可能性があります。あなたは、取得または副詞に投稿しています。あなたがApp\Exceptionに行けば、あなたの例外を変更することができますしかし

handler.php in render()メソッドを開くあなたが例をしたいとあなたは例外を調整することができます。handler()方法で

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

      return response('unauthorized', 401); 

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

$exceptionは、任意の例外オブジェクトのインスタンスである場合だけ確認し、そうであれば、必要に応じてレスポンスを変更することができます。 laravelの例外の場合は、次のようにします。link

+0

私はそれを処理できる場所を見つけることができませんでした。ありがとうございました! –

関連する問題