if ($exception instanceof TokenMismatchException) {
return redirect()->back()->withInput($request->input());
}
Personalizar excepciones para formato web y para api
En el handler poder determinar cuando una petición viene desde el frontend:
private function isFrontend($request)
{
// if accepts html code and has web middleware is a frontend request
return $request->acceptsHtml() && collect($request->route()->middleware())->contains('web');
}
Utilizar isFrontend() en los demás métodos del handler
protected function unauthenticated($request, AuthenticationException $exception)
{
if($this->isFrontend($request))
{
return redirect()->guest('login'); // redirect to login if user is not authenticated
}
return $this->errorResponse("Unauthenticated", 401);
}
protected function convertValidationExceptionToResponse(ValidationException $e, $request)
{
$errors = $e->validator->errors()->getMessages();
if($this->isFrontend($request))
{
return $request->ajax() ? response()->json($errors, 422) : redirect()
->back()
->withInput($request->input())
->withErrors($errors);
}
return $this->errorResponse($errors, 422);
}