Rumah > Artikel > pembangunan bahagian belakang > Laravel 5 以用户名或邮箱登录,登录错误多次显示验证码怎么做?
Laravel的Auth默认是以邮箱来登录的,怎样改成用户名OR邮箱登录?
多次登录错误显示验证码又怎样实现?(这是YII2的方式)
登录时能以用户名或邮箱登录,当用户名/邮箱或密码错误3次之后要求输入验证码,怎么实现?
Laravel的Auth默认是以邮箱来登录的,怎样改成用户名OR邮箱登录?
多次登录错误显示验证码又怎样实现?(这是YII2的方式)
登录时能以用户名或邮箱登录,当用户名/邮箱或密码错误3次之后要求输入验证码,怎么实现?
重写postLogin登录函数:
<code>/** * Handle a login request to the application. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function postLogin(Request $request) { //获取表单的值 $username = $request->input('username'); $password = $request->input('password'); $remeber = $request->input('remember'); //判断是邮箱还是用户名登录 $type = filter_var($username, FILTER_VALIDATE_EMAIL ) ? 'email' : 'username'; //登录表单验证 $validator = Validator::make($request->all(), [ 'username' => 'bail|required|min:5|max:30', 'password' => 'bail|required|min:8|max:50', ]); //表单验证失败提示 if ($validator->fails()) { $errors = $validator->errors()->all(); if (count($errors) > 0) { Flash::error(implode('<br>', $errors)); } return redirect('/login') ->withInput(); } //登录验证 if ($type == 'email') { if (Auth::attempt(['email' => $username, 'password' => $password], $request->has('remember'))) { Flash('登录成功'); return redirect()->intended($this->redirectPath()); } } else if (Auth::attempt(['username' => $username, 'password' => $password], $request->has('remember'))) { Flash('登录成功'); return redirect()->intended($this->redirectPath()); } else { Flash(Lang::get('auth.failed'), 'error'); return redirect('/login') ->withInput(); } }</code>
问题未完全解决,所以先挂着。
客户端登陆之后 点击次数参数 提交到服务器,不成功并且响应带下次登入次数的值给客服端,服务端记录session。以此类推达到3次 客服端直接异步请求 拉取验证码,之后再填写登陆 。带上登陆次数参数 , 服务器进行判断次数,如果没有达到3次 不需要进行验证码判断 反之。