2016-02-10 2 views
1

У меня есть маршрут группы, которая выглядит следующим образом:Как заменить ответ auth.basic по умолчанию на ответ JSON?

Route::group(['prefix' => 'recipe','middleware'=>['auth.basic']], function(){ 
    //Some things to do 
}); 

Когда учетные данные недопустимые Laravel выходы «Неверные учетные данные.» Как переопределить этот ответ с помощью моего собственного ответа JSON?

ответ

0

В AuthController, попробуйте следующее:

public function postLogin(Request $request) 
    { 

      $this->validate($request, [ 
       'email' => 'required', 'password' => 'required', 
      ]); 

      $credentials = [ 
      'email' => $request->input('email'), 
      'password' => $request->input('password')       
      ]; 

      if (Auth::attempt($credentials, $request->has('remember'))) 
      { 
       return redirect()->intended($this->redirectPath()) 
       ->with('success', 'You are successfully logged in'); 
      }   

      return Response::json(array(
       'success' => false, 
       'errors' => $this->getFailedLoginMessage(),         
      ));   

    } 
0

Я только взглянул на Illuminate\Auth\SessionGuard. Способ getBasicResponse(), по-видимому, отвечает за ответ при неудачной попытке входа в систему (с базовым auth).

protected function getBasicResponse() 
{ 
    $headers = ['WWW-Authenticate' => 'Basic']; 

    return new Response('Invalid credentials.', 401, $headers); 
} 

Как на самом деле переписать это кажется немного сложным, хотя. Вероятно, вам необходимо расширить класс SessionGuard и реализовать собственный метод getBasicResponse(). Это легкая часть, как на самом деле создать собственный страж, а не по умолчанию, я пока не знаю.

Смежные вопросы