環境
Laravel v9.5.1 (PHP v8.1.3)
前提
401エラー時に、middleware auth
がログインのエンドポイントにリダイレクトするようになっているのを
{
"message" => "Unauthorized"
}
と返ってくるようにしたい。
方法
Handler
に下記を追記。
AuthenticationException
のunauthenticated
メソッドをオーバーライドする。
これでやりたいエラーメッセージの形と401コードを返してくれる。
app/Exceptions/Handler.php
use Illuminate\Auth\AuthenticationException;
protected function unauthenticated($request, AuthenticationException $e): JsonResponse
{
$errorMessage = [
'message' => "Unauthorized",
];
return (new ErrorResource($errorMessage))->response()->setStatusCode(401);
}
ErrorResource
を使ってエラーレスポンスを統一した記事は↓
参考