【问题标题】:Zend_Auth updating IdentityZend_Auth 更新身份
【发布时间】:2015-09-14 15:21:54
【问题描述】:

我现在在这里坐了一会儿,我想知道从 Zend_Auth 更新身份的最佳解决方案。

public function _initLoadSessionData() {
    if (Zend_Auth::getInstance()->hasIdentity()) {
        $userTbl = new Application_Model_User();
        $userData = $userTbl->getUserData(Zend_Auth::getInstance()->getIdentity()->ID);

        $zendAuth = Zend_Auth::getInstance()->getIdentity();

        foreach ($userData as $key => $value) {
            $zendAuth->$key = $value;
        } 
    }
}

这是我第一次尝试,效果很好。我将此功能放入 Bootstrap,但我确信此解决方案非常糟糕(例如性能),因为它每次都会更新。问题是,我想更新 Zend_Acl 角色,它需要立即更新。谢谢你们的帮助! :)

【问题讨论】:

  • 你试过Zend FrontController Plugin吗??
  • 我的版本效果很好,但我不知道它是否好,或者我应该移动它。我会试试看!

标签: zend-framework zend-auth


【解决方案1】:

你应该使用插件。

创建一个扩展 Zend_Controller_Plugin_Abstract 的类并实现 preDispatch 方法。 在其中,您可以通过 ACL 检查更新,如果不允许某些操作,则将请求重定向到另一个控制器/操作。

别忘了在 Bootstrap.php 上注册插件

Zend_Controller_Front::getInstance()->registerPlugin(new My_Plugin());

【讨论】:

    猜你喜欢
    • 2011-07-14
    • 1970-01-01
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-04-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多