перезапись laravel sendFailedLoginResponse()

#php #laravel #angular

#php #laravel #угловой

Вопрос:

Я использую Laravel с Angular 2 и столкнулся с проблемой, связанной с системой входа в систему, встроенной в Laravel. Я могу войти в систему просто отлично, но если пользователь вводит неправильные учетные данные, он перенаправляет обратно на предыдущую страницу, но это работает не так, как я хочу. Я хочу определить пользовательский путь для перенаправления. Я уже пытался использовать $LoginPath и изменить его на пользовательский путь, но это решение не работает.

Это функция по умолчанию из файла поставщика «vendorIlluminateFoundationAuthAuthenticateUsers.php «

 protected function sendFailedLoginResponse(Request $request)
{
    return redirect()->back()
        ->withInput($request->only($this->username(), 'remember'))
        ->withErrors([
            $this->username() => Lang::get('auth.failed'),
        ]);
}
  

И это мой контроллер входа в систему
«AppHttpControllersAuthLoginController.php «

 <?php

namespace AppHttpControllersAuth;

use AppHttpControllersController;
use IlluminateFoundationAuthAuthenticatesUsers;

class LoginController extends Controller
{


    use AuthenticatesUsers;

    /**
     * Where to redirect users after login / registration.
     *
     * @var string
     */
    protected $redirectTo = '/api/loginCheck';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest', ['except' => 'logout']);
    }
}
  

Я хочу иметь возможность определить свой собственный путь к тому, куда пользователь должен быть перенаправлен после предоставления неправильных учетных данных для входа. Если кто-нибудь может мне помочь, я был бы очень признателен.

Ответ №1:

Поскольку вы используете use AuthenticatesUsers; , вы можете просто переопределить sendFailedLoginResponse() функцию по умолчанию, поместив ту же функцию в свой «AppHttpControllersAuthLoginController.php «

 protected function sendFailedLoginResponse()
{
    return redirect('/your/url/here');
}
  

Надеюсь, это поможет