Zend_Auth將爲您處理大部分身份驗證。沿
$auth = Zend_Auth::getInstance();
if (!$auth->hasIdentity()) {
//call a custom login action helper to try login with GET-params
}
if ($auth->hasIdentity())
$identity = $auth->getIdentity();
//...
}
現在您可以根據標識確定Zend_Acl_Role。我總是爲每個用戶創建一個新角色,並讓這個角色「繼承」用戶實際擁有的所有通用角色。
// specific user with $identity is given the generic roles staff and marketing
$acl->addRole(new Zend_Acl_Role('user'.$identity), array('staff', 'marketing'));
當然,您可以從數據庫檢索角色數組。然後你必須指定每個角色的權限。您可以對其進行硬編碼或將這些信息保存在數據庫中。
$acl->allow('marketing',
array('newsletter', 'latest'),
array('publish', 'archive'));
在你的控制器,你現在可以檢查
$acl->isAllowed('user'.$identity, Zend_Acl_Resource ...)
如果您擁有的權利依賴於某些類別(可能MCV模型)內的信息更復雜的訪問控制,有這些類實現接口Zend_Acl_Resource_Interface。然後你使用這個類作爲Zend_Acl_Assertion的參數並處理那裏的信息。
您應該對cronjobs使用命令行腳本 – arnaud576875
您正在使用哪種認證方案?消息認證碼(例如:HMAC,VMAC)?還有別的嗎? – netcoder
目前,我只是簡單地使用用戶名/密碼進行LDAP身份驗證 –