Zend_Auth的主要作用是驗證登入資料並記下登入的結果。讓我們來看看使用Zend_Auth的每一個程序。
使用Zend_Auth的各個步驟
- 首先是建立一個會員的資料表,資料表中必定有username和password這兩個欄位。會員註冊的部份請自行編寫,這部份跟Zend_Auth完全無關。
- 建立一個登入表單,你可以使用Zend_Form或者直接手動輸入Html也可。
- 接收表單發送的資料,並進行設定。
$db=Zend_Registry::get('db'); //取得先前的資料庫連結。
$authAdapter=new Zend_Auth_Adapter_DbTable($db); //設定連結
$authAdapter->setTableName('auth'); //設定資料表,即會員資料表名稱
$authAdapter->setIdentityColumn('username'); //設定資料表username欄位的名稱
$authAdapter->setCredentialColumn('password'); //設定資料表password欄位的名稱
$authAdapter->setIdentity($data['username']); //設定由表單發送過來的username,以便進行對應
$authAdapter->setCredential(md5($data['password'])); //設定由表單發送過來的password,以便進行對應 - 設定完畢後,我們就可以使用設定的資料進行登入驗證。
$auth=Zend_Auth::getInstance();
$result=$auth->authenticate($authAdapter);
if($result->isValid()) echo '登入完成'; - 當登入完成後,我們可以記下登入結果。
if($result->isValid())
{
$auth_info=$authAdapter->getResultRowObject(null,'password');
$auth->getStorage()->write($auth_info);
echo '登入完成';
} - 當記下登入結果後,進入其他頁面時,就可以檢查是否已經登入。
$auth=Zend_Auth::getInstance();
if($auth->hasIdentity())
{
//登入成功,可以進入頁面
}else{
//並沒有登入,離開頁面
} - 登出,即刪除登入結果的相關資料。
Zend_Auth::getInstance()->clearIdentity();
總結
以上就是使用Zend_Auth的各個步驟,我們可以清楚了解到Zend_Auth的主要作用是驗證登入並記下登入的結果,然後保護網頁。下次有時間我會寫一篇Zend_Acl的介紹,讓這兩個應用可以配合使用。
沒有留言:
張貼留言