Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn ich mich mit Benutzername oder E-Mail in Laravel 5 anmelde, wenn der Bestätigungscode aufgrund von Anmeldefehlern mehrmals angezeigt wird?

Was soll ich tun, wenn ich mich mit Benutzername oder E-Mail in Laravel 5 anmelde, wenn der Bestätigungscode aufgrund von Anmeldefehlern mehrmals angezeigt wird?

WBOY
WBOYOriginal
2016-08-04 09:20:031991Durchsuche

Laravels Auth-Anmeldung erfolgt standardmäßig per E-Mail. Wie ändere ich die Anmeldung in Benutzername oder E-Mail?
Wie implementiert man einen Bestätigungscode, wenn mehrere Anmeldefehler angezeigt werden? (Dies ist die YII2-Methode)
Beim Anmelden können Sie sich mit Ihrem Benutzernamen oder Ihrer E-Mail-Adresse anmelden. Wenn der Benutzername/die E-Mail-Adresse oder das Passwort dreimal falsch sind, werden Sie aufgefordert, einen Bestätigungscode einzugeben ?

Antwortinhalt:

Laravels Auth-Anmeldung erfolgt standardmäßig per E-Mail. Wie ändere ich die Anmeldung in Benutzername oder E-Mail?
Wie implementiert man einen Bestätigungscode, wenn mehrere Anmeldefehler angezeigt werden? (Dies ist die YII2-Methode)
Beim Anmelden können Sie sich mit Ihrem Benutzernamen oder Ihrer E-Mail-Adresse anmelden. Wenn der Benutzername/die E-Mail-Adresse oder das Passwort dreimal falsch sind, werden Sie aufgefordert, einen Bestätigungscode einzugeben ?

Schreiben Sie die PostLogin-Anmeldefunktion neu:

<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>

Das Problem wurde noch nicht vollständig gelöst und bleibt daher vorerst hängen.

Nachdem sich der Client angemeldet hat, wird der Parameter für die Klickanzahl an den Server übermittelt. Wenn dies nicht erfolgreich ist, enthält die Antwort den Wert der nächsten Anmeldeanzahl an den Client und der Server zeichnet die Sitzung auf. Analog dazu fordert der Kundendienst bis zu dreimal asynchron direkt an, den Bestätigungscode abzurufen, und gibt dann die Anmeldung ein. Bringen Sie den Parameter für die Anmeldenummer mit, und der Server beurteilt die Häufigkeit. Wenn er nicht dreimal erreicht wird, ist es nicht erforderlich, den Bestätigungscode zu beurteilen, und umgekehrt.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn