Minggu, 29 November 2015

Membuat Login di Yii Framework

Telah berhari-hari saya memahami framework yii, tiba akhirnya sedikit-sedikit memahami dasar dari yii framework. Saat ini saya mencoba membuat login dengan yii, kuncinya anda harus memahami terebih dahulu mengenai GII yang dasarannya yaitu CRUD. Jika sudah silahkan ikuti langkah-langkah berikut :

yii
  1. Buat Database user
  2. Gantii userIdentity
  3. update model
  4. update Controller

Buat database

silakan copy paste sql ini ke dalam database anda.


CREATE TABLE IF NOT EXISTS `User` (
`id` int(5) NOT NULL AUTO_INCREMENT,
`username` varchar(50) NOT NULL,
`password` varchar(250) NOT NULL,
`email` varchar(250) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=10 ;

setelah di copy. silakan buka protected/config/main.php  dan aktifkan database Mysql dan stopkan sqllite.

'db'=>array(
'connectionString' => 'mysql:host=localhost;dbname=databaseygdigunakan',
'emulatePrepare' => true,
'username' => 'user',
'password' => 'passwordnyauser',
'charset' => 'utf8',
),
Setelah database terkoneksi  lakukan generate tabel User tersebut dengan menggunakan Gii.

Ganti Useridentity

Ubah Class UserIdentity (protected/components/UserIdentity.php) agar mengambil username dan mengautentikasi password menggunakan database yang ada, ingat hapus isi dari public function authenticate() dan isi  sehingga menjadi:

$record=User::model()->findByAttributes(array('username'=>$this->username));
if($record===null)
$this->errorCode=self::ERROR_USERNAME_INVALID;
else if($record->password!==md5($this->password))
$this->errorCode=self::ERROR_PASSWORD_INVALID;
else
{
$this->_id=$record->id;
$this->errorCode=self::ERROR_NONE;
}
return !$this->errorCode;
}
public function getId()
{
return $this->_id;
}
Update model (user.php)
tambahkan fungsi bantuan sederhana di class User (protected/models/User.php) letakan pada bagian paling bawah.

public function hashPassword($phrase){
return hash('md5', $phrase);
}

Update controller (userController)
Kemudian agar proses create maupun Update user bisa langsung menyimpan password dalam bentuk terenkripsi (md5), ubah/tambahkan beberapa kondisi di controller User (protected/controller/UserController.php), terutama untuk function actionCreate dan function actionUpdate tambahkan :

$model->password = $model->hashPassword($_POST['User']['password']);

di fungsi create maupun update sehingga menjadi

.....
$model->attributes=$_POST['User'];
$model->password = $model->hashPassword($_POST['User']['password']);
if($model->save())
.....
….

Selesai dan semoga dapat membantu serta bermanfaat bagi kita semua.

Tidak ada komentar:

Posting Komentar