0

我有一个代表我的身份的类,其中包含一些信息。这是简短的版本。

class Auth_User {

    private $id;
    private $current_role;

    public function __construct($id, $current_role) {
        $this->id = (int) $id;
        $this->current_role = (string) $current_role;
    }

    public function __wakeup() {
        if ( /*$current_role is not valid*/ ) {
            /*clear identity and redirect to login*/
        {
    }
}

我的问题是如何安全地清除身份并重定向到唤醒方法中的登录?如果我执行以下操作,它似乎会在无限循环中运行。

Zend_Auth::getInstance()->clearIdentity();
$this->_helper->redirector('index', 'index');
4

1 回答 1

0

你有一个方法的事实__wakeup()意味着你有一个__sleep()方法。

在这种情况下,我可能会考虑在Zend_Session_Namespace('Zend_Auth')__sleep()方法中设置过期时间。

然后__isset()针对方法中的命名空间进行测试__wakeup()。我认为这种方法可能有效。

如果您只是想清除身份,__sleep()那可能也是一个好主意,然后重定向到login()on __wakeup()

希望我不是完全在左领域...

于 2012-04-05T13:01:57.457 回答