Tips Login dengan Username atau Email di Laravel


Tak jarang kita menyertakan Username dan Email di form registrasi seperti ini
Email : 
Username : 
Password :
....

lalu setelah user sukses registrasi biasanya kita minta Login dengan menyertakan Username saja dan password. Namun tak jarang bisa menyertakan baik Username atau Email beserta password seperti ini :





Jadi user bisa login dengan Username atau email nya. Tips simple ini sebenarnya di PHP native atau di framewok yang lain juga bisa.
berikut cara simple nya di Laravel

#AuthController.php
public function doLogin(){
   
   $username = Input::get('username');
   $password = Input::get('password'); 

   $field = filter_var($username, FILTER_VALIDATE_EMAIL) ? 'email':'username';
   
   if(Auth::attempt(array($field => $username,'password' => $password)))
   {
      return Redirect::intended();            
   }
   else
   {           
       return Redirect::to('login')->with('error', 'Invalid username/email or password')
->withInput();
   }


}//end of function
     
Form login nya cukup seperti biasa
<input type="text" name="username" placeholder="Email or username...">
<input type="password" name="password" placeholder="password..."

Penjelasan : 
 perhatikan kode berikut :
if(Auth::attempt(array($field => $username,'password' => $password)))

Secara default Auth::attempt() membutuhkan (normalnya) 2 input-tan yakni username dan password . Kita hanya perlu membuat field username flexible saja .
filter_var($username, FILTER_VALIDATE_EMAIL) ? 'email':'username';
dengan method diatas field username telah kita buat dinamis dan otomatis nge-Cek apakah yang diinput itu email atau bukan.

Sekian Tips kali ini. Happy coding !!!

Share this

Related Posts

First