Zend_Auth的應用程序

Zend_Auth的主要作用是驗證登入資料並記下登入的結果。讓我們來看看使用Zend_Auth的每一個程序。

使用Zend_Auth的各個步驟

  1. 首先是建立一個會員的資料表,資料表中必定有username和password這兩個欄位。會員註冊的部份請自行編寫,這部份跟Zend_Auth完全無關。
  2. 建立一個登入表單,你可以使用Zend_Form或者直接手動輸入Html也可。
  3. 接收表單發送的資料,並進行設定。
    $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,以便進行對應
  4. 設定完畢後,我們就可以使用設定的資料進行登入驗證。
    $auth=Zend_Auth::getInstance();
    $result=$auth->authenticate($authAdapter);
    if($result->isValid()) echo '登入完成';
  5. 當登入完成後,我們可以記下登入結果。
    if($result->isValid())
    {
        $auth_info=$authAdapter->getResultRowObject(null,'password');
        $auth->getStorage()->write($auth_info);
        echo '登入完成';
    }
  6. 當記下登入結果後,進入其他頁面時,就可以檢查是否已經登入。
    $auth=Zend_Auth::getInstance();
    if($auth->hasIdentity())
    {
        //登入成功,可以進入頁面
    }else{
        //並沒有登入,離開頁面
    }
  7. 登出,即刪除登入結果的相關資料。
    Zend_Auth::getInstance()->clearIdentity();

總結

以上就是使用Zend_Auth的各個步驟,我們可以清楚了解到Zend_Auth的主要作用是驗證登入並記下登入的結果,然後保護網頁。下次有時間我會寫一篇Zend_Acl的介紹,讓這兩個應用可以配合使用。

沒有留言: