Minggu lalu kita sudah mencoba
Membuat Model Menggunakan Fitur Gii Console Command di Yii2, ada satu model yang tidak kita generate yaitu model user, saat menginstal Yii2 basic template model user secara otomatis dibuat. Jadi, tugasnya adalah memodifikasi model user agar sesuai dengan kebutuhan aplikasi BarBek. Berikut ini adalah model user bawaan dari basic template pada Yii2:
Langsung saja, kita akan memodifikasi model tersebut dimulai dari:
1. Mengubah parent class dari
\yii\base\Object menjadi
\yii\db\ActiveRecord. Hal ini perlu kita lakukan karena kita akan menghubungkan model user ini dengan tabel
user pada database
barbek.
2. Karena tabel
user tidak menggunakan prefix
tbl_, jadi kita harus meng-override method
tableName() dari class
\yii\db\ActiveRecord. Sehingga, nilai balikkan (return value) dari method tersebut adalah nama tabel (string)
user.
3. Menambahkan
\yii\behaviors\TimestampBehavior pada method
behaviors() untuk mencatat waktu pembuatan dan pembaruan baris tabel
user.
4. Model user akan digunakan untuk proses autentikasi penjual, jadi model user secara default mengimplementasikan
\yii\web\IdentityInterface. Kita harus memodifikasi method dari
\yii\web\IdentityInterface diantaranya,
findIdentity(),
findIdentityByAccessToken() dengan menggunakan method
findOne() dari
\yii\db\ActiveRecord didalam kedua method tersebut. Terkhusus untuk method
findIdentityByAccessToken(), kita akan menggunakan sebuah library bernama
firebase/php-jwt untuk men-decode
JSON Web Token (JWT) dan mengambil informasi id user dari token tersebut. Jadi, silahkan install library tersebut via composer. Sebagai informasi, kita akan menggunakan JWT untuk proses autentikasi RestFul Web APIs dari aplikasi BarBek.
5. Menambahkan method baru
findByUsername() untuk mencari user berdasarkan username
6. Menambahkan method baru
setPassword() untuk mengenerate password hash menggunakan method
generatePasswordHash() dari class
\yii\base\Security
7. Menambahkan method baru
validatePassword() untuk memvalidasi password menggunakan method
validatePassword() dari class
\yii\base\Security
8. Menambahkan method baru generateJWT() untuk menggenerate JSON Web Token untuk keperluan autentikasi user.
Jadi, inilah hasil modifikasi model user:
Note: Kita akan menambahkan beberapa parameter untuk keperluan JWT di
config/params.php. Untuk mencari tahu lebih dalam mengenai spesifikasi JWT silahkan pelajari
disini.
Sampai disini dulu postingan minggu ini, kita lanjutkan minggu depan..
Comments
Post a Comment