From 1e3ebd85b14211ba6d6aeffdcad4eecc44dc6c2d Mon Sep 17 00:00:00 2001 From: kabayan <> Date: Wed, 26 Sep 2007 16:56:29 +0000 Subject: Indonesian: synchorizing Auth and NewFeatures --- .../protected/pages/Advanced/id/Auth.page | 44 +++++++++++++++++++++- 1 file changed, 43 insertions(+), 1 deletion(-) (limited to 'demos/quickstart/protected/pages/Advanced') diff --git a/demos/quickstart/protected/pages/Advanced/id/Auth.page b/demos/quickstart/protected/pages/Advanced/id/Auth.page index 807863ca..c1e44656 100644 --- a/demos/quickstart/protected/pages/Advanced/id/Auth.page +++ b/demos/quickstart/protected/pages/Advanced/id/Auth.page @@ -124,5 +124,47 @@ Dalam contoh di atas, UserClass menetapkan bahwa kelas akan dipakai unt

Kelas pengguna harus menerapkan dua metode abstrak dalam TDbUser: validateUser() dan createUser(). Karena informasi akun pengguna disimpan dalam sebuah database, kelas pengguna dapat menggunakan properti DbConnection-nya untuk menjangkau database.

+ +

+Sejak versi 3.1.1, TAuthManager menyediakan dukungan guna membolehkan mengingat yang masuk dengan menyetel AllowAutoLogin menjadi true. Oleh karena itu, TDbUser menambahkan dua metode untuk memfasilitasi implementasi fitur ini. Dalam keadaan tertentu, dua metode baru diperkenalkan: createUserFromCookie() dan saveUserToCookie(). Para pengembang harus mengimplementasikan dua metode ini jika mengingat yang sudah masuk diperlukan. Di bawah ini adalah contoh implementasi: +

+ +public function createUserFromCookie($cookie) +{ + if(($data=$cookie->Value)!=='') + { + $application=Prado::getApplication(); + if(($data=$application->SecurityManager->validateData($data))!==false) + { + $data=unserialize($data); + if(is_array($data) && count($data)===3) + { + list($username,$address,$token)=$data; + $sql='SELECT passcode FROM user WHERE LOWER(username)=:username'; + $command=$this->DbConnection->createCommand($sql); + $command->bindValue(':username',strtolower($username)); + if($token===$command->queryScalar() && $token!==false && $address=$application->Request->UserHostAddress) + return $this->createUser($username); + } + } + } + return null; +} + +public function saveUserToCookie($cookie) +{ + $application=Prado::getApplication(); + $username=strtolower($this->Name); + $address=$application->Request->UserHostAddress; + $sql='SELECT passcode FROM user WHERE LOWER(username)=:username'; + $command=$this->DbConnection->createCommand($sql); + $command->bindValue(':username',strtolower($username)); + $token=$command->queryScalar(); + $data=array($username,$address,$token); + $data=serialize($data); + $data=$application->SecurityManager->hashData($data); + $cookie->setValue($data); +} + -
$Id: Auth.page 2226 2007-09-16 19:32:58Z xue $
\ No newline at end of file +
$Id: Auth.page 2245 2007-09-26 13:22:02Z xue $
\ No newline at end of file -- cgit v1.2.3