Laravel 5.7, логин перенаправляет обратно на логин - PullRequest
0 голосов
/ 31 января 2019

Я использую laravel 5.7, я ввел логин, используя make-auth ().Кроме того, моя функция входа в систему:

public function login(Request $request)
{
    $this->validate($request, [
        'email'   => 'required|email',
        'password' => 'required|min:6'
    ]);
    $validator = Validator::make($request->all(), [
        'email' => 'required|unique:users|max:255',
        'password' => 'required',
    ]);

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

    if (Auth::guard('web')->attempt($credentials)) {
      $user = Auth::user();
      return redirect(route('home'));
    }

    $validator->errors()->add('login', 'Invalid Credentials');
    return redirect()->back()
        ->with('loginError','Invalid Credentials')
        ->withInput($request->only('email', 'remember'));
}

Когда я пытаюсь войти, страница перенаправляется обратно на страницу входа.Я что-то упускаю или есть что-то, что нужно добавить в промежуточное ПО или любой другой файл

1 Ответ

0 голосов
/ 31 января 2019

Я подозреваю, что эта часть может быть проблемой?

$validator = Validator::make($request->all(), [
    'email' => 'required|unique:users|max:255',
    'password' => 'required',
]);

Добавляя unique правило проверки на страницу login (в отличие от registration page), существующий пользователь будет перенаправляться обратно с ошибкой проверки каждый раз, потому что его электронная почта уже находится в базе данных.

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

Вот фрагмент, который вы можете использовать для отображения ошибок (от https://laravel.com/docs/5.7/validation#quick-displaying-the-validation-errors)

@if ($errors->any())
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
                <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif
...