Selamat pagi guys. Sorry beberapa hari kamaren sibuk. Jadi belum sempet update blog lagi. Mumpung kali ini sempet, hari ini mau berbagi tentang cara login ke aplikasi Yii2 dengan user dari database.
Kemaren sudah ada penjelas mengenai penggunaan database yaitu menampilkan data dari database ke aplikasi Yii2. Langsung saja guys, kita mulai membuat login aplikasi Yii2 dari user yang ada di database.
Membuat Table Login.
Kemaren kita sudah membuat database "yii2basic". Daripada kita buat database lagi, mending pake yang itu saja. Sekarang kita tinggal membuat table login.
Untuk membuat table login, Teman2 bisa mengikuti query berikut :
create table login(Jika Teman2 belum tahu cara koneksi ke database, anda bisa klik disini untuk melihat caranya.
id int AUTO_INCREMENT,
username varchar(30),
password varchar(50),
authKey varchar(50),
accessToken varchar(50),
role varchar(10),
primary key(id)
);
insert into login values (
'',
'mursit',
'bismillah',
'mursit-12345',
'mumu2937412912zzzz',
'Admin'
);
Setelah itu kita membuat Model untuk table tersebut dengan menggunakan generator Yii2. Untuk masuk halaman generator anda tidak perlu melakukan konfigurasi lagi. Karena secara default sudah diaktifkan. Untuk mengaksesnya buka browser dan masukkan url berikut "http://localhost/yii2basic/web/index.php?r=gii".

Untuk cara penggunaan teman2 bisa mengikuti langkah berikut :

Untuk cara penggunaan teman2 bisa mengikuti langkah berikut :
- Klik button start pada Model Generator
- Halaman Model Generator.
- Masukkan nama tabel dan nama model yang akan digenerate.
- Kemudian klik button preview yang berada di bawah form generate.Kemudian klik button generate.
Sekarang model table login sudah tergenerate. Anda bisa mengecek di folder "yii2basic/models"
Selanjutnya kita membuat kodingnya untuk login dengan database. Silahkan teman2 buka file pada direktori "models/User.php".
Untuk kode programnya bisa mengikuti script di bawah :
namespace app\models;Sekarang kita trial aplikasinya buat login dengan user yang kita buat tadi.
use app\models\Login; //mendifinisikan model class Login yang telah kita generate tadi.
class User extends \yii\base\Object implements \yii\web\IdentityInterface
{
public $id;
public $username;
public $password;
public $authKey;
public $accessToken;
public $role;
public static function findIdentity($id)
{
//mencari user login berdasarkan IDnya dan hanya dicari 1.
$user = Login::findOne($id);
if(count($user)){
return new static($user);
}
return null;
}
public static function findIdentityByAccessToken($token, $type = null)
{
//mencari user login berdasarkan accessToken dan hanya dicari 1.
$user = Login::find()->where(['accessToken'=>$token])->one();
if(count($user)){
return new static($user);
}
return null;
}
public static function findByUsername($username)
{
//mencari user login berdasarkan username dan hanya dicari 1.
$user = Login::find()->where(['username'=>$username])->one();
if(count($user)){
return new static($user);
}
return null;
}
public function getId()
{
return $this->id;
}
public function getAuthKey()
{
return $this->authKey;
}
public function validateAuthKey($authKey)
{
return $this->authKey === $authKey;
}
public function validatePassword($password)
{
return $this->password === $password;
}
}
Silahkan teman2 masuk halaman login.
Ini yang terjadi jika username atau password kita tidak sesuai yang ada di dalam table login.

Kita coba dengan username dan password yang sesuai dengan data yang ada pada tabel login.
Dan hasilnya kita sukses login dengan menggunakan data yang ada pada database.
Sekain bagi2 ilmu pada pagi hari ini. Semoga bermanfaat buat teman2 yang baru belajar Yii2. See you later...:D