Allow login using username or email in Laravel 5.4

后端 未结 10 2229
南旧
南旧 2021-02-04 00:48

Now I\'ve followed the Laravel documentation on how to allow usernames during authentication, but it takes away the ability to use the email. I want to allow users to use their

10条回答
  •  灰色年华
    2021-02-04 01:07

    Follow instructions from this link: https://laravel.com/docs/5.4/authentication#authenticating-users

    Then you can check for the user input like this

    $username = $request->username; //the input field has name='username' in form
    
    if(filter_var($username, FILTER_VALIDATE_EMAIL)) {
        //user sent their email 
        Auth::attempt(['email' => $username, 'password' => $password]);
    } else {
        //they sent their username instead 
        Auth::attempt(['username' => $username, 'password' => $password]);
    }
    
    //was any of those correct ?
    if ( Auth::check() ) {
        //send them where they are going 
        return redirect()->intended('dashboard');
    }
    
    //Nope, something wrong during authentication 
    return redirect()->back()->withErrors([
        'credentials' => 'Please, check your credentials'
    ]);
    

    This is just a sample. THere are countless various approaches you can take to accomplish the same.

提交回复
热议问题