2017-08-11 153 views
0

我想创建一个AJAX登录请求,在身份验证失败的情况下,应该在JSON对象中返回身份验证错误消息。什么是最好的方法来做到这一点?Laravel 5.4登录JSON错误响应

感谢您提前给出答案!

编辑:

我生成与所述php artisan make:auth命令在auth。

+0

那你试试? – Bas

+1

您选择以** bold **显示的内容有点任意。 – apokryfos

+0

我试图“覆盖”'AuthenticatesUsers'特性 – LakiGeri

回答

1

有2种可能的身份验证失败:

  1. 请求验证失败
  2. 的凭证无效

当请求验证失败,根据错误返回适应什么请求期望如此,如果它是JSON,它将返回JSON响应中的错误。

的问题是对于第二种情况,你可以简单地做这种情况下:

class LoginController { 

     use AuthenticatesUsers { 
      sendFailedLoginResponse as protected traitSendFailedLoginResponse; 
     } 

     protected function sendFailedLoginResponse(Request $request) { 
      if ($request->expectsJson()) { 
       return response()->json([ "errors" => Lang::get('auth.failed') ]); 
      } else { 
       return $this->traitSendFailedLoginResponse($request); 
      } 
     } 
} 
+0

谢谢,它的工作! :) – LakiGeri