Kolom Password Dalam Autentikasi, Bisakah Diganti?
Artikel ini untuk Laravel 5.0, jika Anda memakai Laravel 5.1 silakan baca tutorial Memodifikasi Default Login Laravel 5.1.
Secara default, Laravel 5 sudah menyediakan boilerplate autentikasi yang bisa langsung dipakai. Namun, Laravel berasumsi bahwa tabel yang digunakan untuk autentikasi adalah tabel users yang didalamnya terdapat dua buah kolom: email dan password. Dua field inilah yang dijadikan inputan ketika login ataupun registrasi.
Jon Bertanya
Apakah kita bisa mengganti nama kolom yang digunakan, misalnya dari password menjadi sandi?
Dodo Menjawab
Bisa Aja.
Kolom password digunakan baik ketika registrasi ataupun login. Oleh karena itu, kita harus memodifikasi file-file yang digunakan untuk masing-masing proses tersebut.
Registrasi
Langkah 1. Ubah View
Buka file resources/views/auth/register.blade.php. Disitu terdapat dua buah tag input, yaitu untuk password dan password_confirmasion. Ubah atribut name masing-masing menjadi "sandi" dan "sandi_confirmation":
...
<div class="form-group">
<label class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input type="password" class="form-control" name="sandi">
</div>
</div>
<div class="form-group">
<label class="col-md-4 control-label">Confirm Password</label>
<div class="col-md-6">
<input type="password" class="form-control" name="sandi_confirmation">
</div>
</div>
...
Langkah 2. Ubah Service Registrar
Buka file app/Services/Registrar.php, disitu bisa kita dapati "password" tertulis di dua tempat. Ganti dua-duanya dengan "sandi".
<?php namespace App\Services;
use App\User;
use Validator;
use Illuminate\Contracts\Auth\Registrar as RegistrarContract;
class Registrar implements RegistrarContract {
/**
* Get a validator for an incoming registration request.
*
* @param array $data
* @return \Illuminate\Contracts\Validation\Validator
*/
public function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
// 'password' => 'required|confirmed|min:6',
'sandi' => 'required|confirmed|min:6',
]);
}
/**
* Create a new user instance after a valid registration.
*
* @param array $data
* @return User
*/
public function create(array $data)
{
return User::create([
'name' => $data['name'],
'email' => $data['email'],
// 'password' => bcrypt($data['password']),
'sandi' => bcrypt($data['sandi']),
]);
}
}
Langkah 3. Ubah Model User
Buka file app/User.php, lakukan perubahan di bagian $fillable, ganti "password" menjadi "sandi":
protected $fillable = ['name', 'email', 'sandi'];
Selesai, Anda bisa mencoba kembali proses registrasi bawaan Laravel dan membuktikan sendiri apakah langkah-langkah di atas sudah benar. Cukup 3 langkah. Gampang kan?
Login
Langkah 1. Ubah Model User
Buka kembali file app/User.php, tambahkan (atau lebih tepatnya override) fungsi getAuthPassword:
public function getAuthPassword()
{
return $this->sandi; // default return $this->password;
}
Langkah 2. Berdoa
Silakan berdoa, dilanjutkan dengan melakukan pengujian login menggunakan data hasil registrasi sebelumnya. Berhasilkah?