Laravel의 인증은 기본적으로 이메일을 통한 로그인으로 되어 있습니다. 로그인하려면 사용자 이름이나 이메일로 어떻게 변경해야 하나요?
여러 개의 로그인 오류가 표시될 때 인증 코드를 구현하는 방법은 무엇입니까? (YII2 방식입니다.)
로그인 시 사용자 이름이나 이메일로 로그인할 수 있습니다. 사용자 이름/이메일 또는 비밀번호가 3회 틀리면 인증 코드를 입력하라는 메시지가 표시됩니다. ?
Laravel의 인증은 기본적으로 이메일을 통한 로그인으로 되어 있습니다. 로그인하려면 사용자 이름이나 이메일로 어떻게 변경해야 하나요?
여러 개의 로그인 오류가 표시될 때 인증 코드를 구현하는 방법은 무엇입니까? (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>
문제가 완전히 해결되지 않아 일단 방치해 두겠습니다.
클라이언트가 로그인한 후 클릭 횟수 매개변수가 서버에 제출됩니다. 실패할 경우 응답에는 클라이언트에 대한 다음 로그인 횟수 값이 포함되며 서버는 세션을 기록합니다. 비유하자면, 고객 서비스 측에서는 인증 코드 가져오기를 비동기식으로 직접 요청한 후 로그인 정보를 입력하는 경우가 최대 3번입니다. 로그인 번호 매개변수를 가져오면 서버가 횟수를 판단합니다. 3회에 도달하지 않으면 인증 코드를 판단할 필요가 없으며 그 반대도 마찬가지입니다.