我使用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'));
}
当我尝试登录时,页面被重定向回登录页面。 我错过了什么还是在中间件或任何其他文件中添加了任何内容
答案 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