Zend_Auth 是用來驗證使用者的工具,它支援以下的驗證方法:
Zend_Auth_Adapter_DbTable
Zend_Auth_Adapter_Digest
Zend_Auth_Adapter_HTTP
Zend_Auth_Adapter_InfoCard
Zend_Auth_Adapter_LDAP
Zend_Auth_Adapter_OpenID
橋接器實作的介面是
Zend_Auth_Adapter_Interface
驗證後,需要暫存資訊在 Storage 裡,它也提供一個介面 Zend_Auth_Storage_Interface
可以繼承,並使用 setStorage()
即可做設定。
Zend Framework 對 Storage 有兩個實作:
Zend_Auth_Storage_Session
- 最常見的 SessionZend_Auth_Storage_NonPersistent
- 驗證只能是一次性,下次 request 都還是要做驗證的動作
Basic usage
Zend_Auth 使用單例模式實作,取得實例的方法為 Zend_Auth::getInstance()
。
裡面可以操作的方法如下:
Method Name | Description |
---|---|
Zend_Auth_Storage_Interface getStorage() | 取得儲存器,如果沒有設定儲存器的話,預設會 new 一個 Zend_Auth_Storage_Sessionn 實例 |
Zend_Auth setStorage(#Zend_Auth_Storage_Interface $storage) | 設定儲存器 |
Zend_Auth_Result authenticate(#Zend_Auth_Adapter_Interface $adapter) | 驗證 |
boolean hasIdentity() | 確認是否有登入 |
mixed getIdentity() | 取得登入身份,無登入會回傳null |
void clearIdentity() | 清除登入身份 |
DbTable Adapter
DbTable即為傳統資料表驗證,使用資料表查詢。如果有符合的欄位,即為登入成功。
可以用建構子去設定初值,或是使用 setter 設定初值
// 建構子 |
初始化完後,就可以設定帳號密碼做驗證了
$authAdapter |
可以取得登入的基本資訊
$authAdapter->getResultRowObject(array('id', 'username', 'nickname')); |