Currently I have a login, register, update and delete functionality using my api made in Laravel using passport feature. Everything works fine the insertion of data and fetc
This solution worked for me, found in the Laravel Docs. You can override the unauthenticated function in the Handler like this:
protected function unauthenticated($request, AuthenticationException $exception)
{
return $request->expectsJson()
? response()->json(['message' => $exception->getMessage()], 401)
: redirect()->guest(route('login'));
}
then, handle and provide the response you want.
Don't forget to import this as well in the Handle.php file:
use Illuminate\Auth\AuthenticationException;
I hope it does work well for you!
Override auth:api middleware, and modify it accordingly to give the response you want.
Here's how I solved it. If you are using Laravel 5.5 or above you can override the default exception handler by editing app/Exceptions/Handler.php
to add the following:
use Illuminate\Auth\AuthenticationException;
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
$json = [
'isAuth'=>false,
'message' => $exception->getMessage()
];
return response()
->json($json, 401);
}
$guard = array_get($exception->guards(),0);
switch ($guard) {
default:
$login = 'login';
break;
}
return redirect()->guest(route($login));
}
In the JSON return, you can add any parameters per your requirement.