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*/
        {
    }
}

私の質問では、ウェイクアップ メソッドで ID を安全にクリアし、ログインにリダイレクトするにはどうすればよいですか? 以下を実行すると、無限ループで実行されるようです。

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

1 に答える 1

0

メソッドを持っているという事実は、__wakeup()メソッドを持っていることを意味します__sleep()

この状況で私がおそらくやろうとしていることZend_Session_Namespace('Zend_Auth')は、__sleep()メソッドで有効期限を設定することです。

__isset()次に、メソッドの名前空間に対してテストします__wakeup()。このアプローチはうまくいくかもしれないと思います。

で ID をクリアしたいだけの場合は__sleep()、それも良い考えであり、login()onにリダイレクトするだけ__wakeup()です。

私が完全に左翼手ではないことを願っています...

于 2012-04-05T13:01:57.457 に答える