我目前有一个使用 Zend_Auth 进行用户访问的应用程序。该网站有一个管理部分,我希望在我的数据库中具有管理员角色的用户在使用其凭据时能够访问该部分。 Zend_Acl 是执行此操作的唯一方法吗?因为这对于我想做的事情来说似乎有点复杂,或者是否有更简单的解决方案来解决我的问题?
我已经考虑过这个问题,现在我想知道是否可以有两个身份验证 Controller ,一个用于用户,一个用于我的管理部分?
最佳答案
我最近做了这样的事情。为管理模块创建一个前端 Controller 插件来检查用户凭据。像这样的东西:
class Admin_Plugin_Auth extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
if ($request->getModuleName() != 'admin'){
return;
}
$auth = Zend_Auth::getInstance();
if (!$auth->hasIdentity()){
// send him to login
}
$user = $auth->getIdentity();
if (!$user->isAdmin()){ // or however you check
// send him to a fail page
}
}
}
关于zend-framework - ZendFramework 应用程序中的管理部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10299374/