2016-01-16 8 views
0

Я борется с сообщениями функции входа в laravel 5.2. Я переопределяю функцию sendFailedLoginResponse по умолчанию в AuthController, которая работает для неудачных попыток.Переопределение пользовательских сообщений об ошибках входа в laravel 5.2

Но мне нужно переопределить также ответ функции validate, который я не мог понять, как это сделать. Также я не хочу переопределять функции входа по умолчанию в AuthContrller и хочу придерживаться той же функции login.

Причина для переопределения функции validate заключается в том, что я делаю угловое приложение и хочу получить ответ в json формате с помощью некоторых пользовательских клавиш.

В настоящее время по умолчанию login функция Illuminate\Foundation\Auth\AuthenticateUsers.php

public function login(Request $request) 
{ 
    $this->validate($request, [ 
     $this->loginUsername() => 'required', 'password' => 'required', 
    ]); 
    // If the class is using the ThrottlesLogins trait, we can automatically throttle 
    // the login attempts for this application. We'll key this by the username and 
    // the IP address of the client making these requests into this application. 
    $throttles = $this->isUsingThrottlesLoginsTrait(); 

    if ($throttles && $this->hasTooManyLoginAttempts($request)) { 
     return $this->sendLockoutResponse($request); 
    } 

    $credentials = $this->getCredentials($request); 

    if (Auth::guard($this->getGuard())->attempt($credentials, $request->has('remember'))) { 
     return $this->handleUserWasAuthenticated($request, $throttles); 
    } 

    // If the login attempt was unsuccessful we will increment the number of attempts 
    // to login and redirect the user back to the login form. Of course, when this 
    // user surpasses their maximum number of attempts they will get locked out. 
    if ($throttles) { 
     $this->incrementLoginAttempts($request); 
    } 

    return $this->sendFailedLoginResponse($request); 
} 

Я хочу ответ что-то, как и в приведенной ниже sendFailedResponse функции в AuthController

/** 
* Get failed request response 
* 
* @param null 
* @return null 
*/ 
public function sendFailedLoginResponse() 
{ 
    return response()->json([ 'status' => false, 'message' => $this->getFailedLoginMessage() ]); 
} 

Благодарности

ответ

0

Я придумал решение по реализации JWT для проверки подлинности, который я мог думать о том лучшее решение с клиентской стороны.

0

Я ничего не знаю, Угловое и обработка json на laravel, но у меня была схожая проблема при создании пользовательского err или сообщение для функции postLogin. взгляните на этот код, возможно, вы можете что-то сделать в запросе формы.

Это мой AuthController.php

use App\Http\Requests\LoginFormRequest; 

/** 
* Handle a login request to the application. 
* 
* @param \Illuminate\Http\Request $request 
* @return \Illuminate\Http\Response 
*/ 
public function postLogin(LoginFormRequest $request) 
{ 
    return $this->login($request); 
} 

Попробуйте использовать запрос форму на функцию postLogin

class LoginFormRequest extends Request 
{ 
    /** 
    * Determine if the user is authorized to make this request. 
    * 
    * @return bool 
    */ 
    public function authorize() 
    { 
    return true; 
    } 

    /** 
    * Get the validation rules that apply to the request. 
    * 
    * @return array 
    */ 
    public function rules() 
    { 
    return [ 
     'email'   => 'required|email', 
     'password'   => 'required|min:6', 
    ]; 
    } 

    public function messages() 
    { 
    return [ 
     'required' => 'Your :attribute is required.', 
     'min' => ':attribute must be at least :min characters in length.', 
     'email' => 'Please type valid email address.', 
    ]; 
    } 
} 
Смежные вопросы