2012-04-05 7 views
0

Ich habe eine Klasse, die meine Identität darstellt, die ein paar Informationen enthält. Hier ist die kurze Version.zend_auth Identität auf Spur

Meine Frage, wie kann ich sicher die Identität löschen und umleiten, um in der Aufweckmethode einzuloggen? Wenn ich Folgendes tue, scheint es in einer Endlosschleife zu laufen.

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

Nun, es sollte den Trick tun, könnten Sie bieten ein wenig mehr Details, so dass einige von Ihnen eine bessere Lösung geben könnte. –

+0

Ich denke, das Problem ist, wenn ich Zend_Auth :: getInsance() aufrufen -> clearIdentity(); es ruft die __wakeup-Funktion immer wieder auf. Also seine unendliche Rekursion. – Jeremiah

Antwort

0

die Tatsache, dass Sie eine __wakeup() Methode haben bedeutet, dass Sie eine __sleep() Methode haben.

Was ich wahrscheinlich in dieser Situation tun würde, wäre ein Ablauf auf Zend_Session_Namespace('Zend_Auth') in der __sleep() Methode.

Dann Test für __isset() gegen den Namensraum in der __wakeup() Methode. Ich denke, dass dieser Ansatz funktionieren könnte.

Wenn Sie nur die Identität bei __sleep() löschen möchten, die auch eine gute Idee, und dann leite es einfach auf __wakeup()-login() sein könnte.

Hoffe, dass ich im linken Feld nicht völlig bin ...