> 백엔드 개발 > PHP 튜토리얼 > Laravel 5에서 사용자 이름이나 이메일로 로그인할 때 로그인 오류로 인해 인증번호가 여러 번 표시되는 경우 어떻게 해야 하나요?

Laravel 5에서 사용자 이름이나 이메일로 로그인할 때 로그인 오류로 인해 인증번호가 여러 번 표시되는 경우 어떻게 해야 하나요?

WBOY
풀어 주다: 2016-08-04 09:20:03
원래의
2011명이 탐색했습니다.

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회에 도달하지 않으면 인증 코드를 판단할 필요가 없으며 그 반대도 마찬가지입니다.

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿