Laravel 5.7,登录名重定向回登录名

时间:2019-01-31 05:08:38

标签: laravel-5.7 laravel-authentication

我使用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 :(得分:0)

我怀疑这可能是问题所在?

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

通过向{em>登录页面(而不是 registration 页面)添加unique验证规则,现有用户将通过验证重定向每次都会出现错误,因为他们的电子邮件已经在数据库中。

检查您的登录页面,并确保您显示的是表单验证错误。如果您看到一条错误消息,指出该电子邮件必须是唯一的,那么这就是原因。

这是一个片段,您可以用来显示错误(来自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