環境
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を使ってエラーレスポンスを統一した記事は↓
参考