2012-05-09 7 views
6

Ich lerne Zend Framework, aber ich habe einige Zweifel an der Verwendung und den Konzepten.Wie überprüft man, ob der Benutzer bei Zend Framework angemeldet ist?

Ich möchte überprüfen, ob der Benutzer angemeldet ist, um den Zugriff auf alle Seiten zu ermöglichen. Wenn dies der Fall ist, zeigen Sie die Seite an, wenn nicht, zeigen Sie die Seite an.

Mein Haupt Zweifel sind , was ich brauche, um diesen (Zend_Auth, Zend_Acl, usw.) zu tun und wo überprüfen, ob der Benutzer angemeldet ist (in jedem Controller oder der Rahmen automatisch überprüft dies für jede Anforderung) .

+0

ACL ist in der Regel für die Ebene der Benutzerkontrolle verwendet. Du willst Zend_Auth. – Brendan

+0

Für den Benutzer negativ, warum die -1? –

+1

Weil "Ihre Frage keinen Forschungsaufwand zeigt" (über den Abstimmpfeil bewegen, um das zu sehen). Es gibt viele Tutorials zu finden und es gibt ein hervorragendes Handbuch für ZF, das Ihnen die Informationen geben würde, nach denen Sie suchen. In jedem Fall sollte meine Antwort dich in die richtige Richtung bringen. Viel Glück. – vascowhite

Antwort

5

Das Werkzeug, das Sie verwenden möchten, ist Zend_Auth, die ziemlich einfach zu bedienen ist, wenn Sie den Dreh raus bekommen.

prüfen, ob ein Benutzer angemeldet ist kann so einfach sein: -

$auth = Zend_Auth::getInstance(); 
if($auth->hasIdentity()) $loggedIn = true; 

Rob Allen's excellent tutorial on getting started with Zend Auth See.

Die Methode, die ich ist verwenden, um eine Benutzerklasse, die nach der Autorisierung und Zugriffskontrolle sieht einzurichten und sie in meine Anwendung als Action Helper injiziert, so dass ich in jedem meines Controller nur tun können: -

$this->user->checkSomething(); 

Der Autorisierungsteil muss alle Teile Ihrer Site betreffen, die nicht öffentlich sein sollen und jeder betroffene Controller muss überprüfen, ob der Benutzer angemeldet ist. Für die Zugriffssteuerung erfolgt dies pro Rolle/pro Ressource abhängig davon, wie feinkörnig Sie sein müssen.Siehe ACL und AUTH im Handbuch.

+0

Wird Action-Helper nicht als schlecht für die Leistung angesehen? – Songo

+0

In welcher Weise? Ein Aktionshelfer wird nur bei Bedarf geladen, ich habe nie irgendwelche Leistungsprobleme bemerkt. Können Sie eine Verbindung zu einer Quelle herstellen? Ich wäre daran interessiert, es zu lesen. – vascowhite

+0

Nun, es wurde in der akzeptierten Antwort für [diese] (http://stackoverflow.com/questions/4708754/optimizing-the-zend-framework) Frage erwähnt. Auch ich fand [diesen Artikel] (http://www.rmauger.co.uk/2009/03/why-the-zend-framework-actionstack-is-evil/) vor einer Weile. Ich habe es nicht viel weiter untersucht, da ich Action-Helfer selten benutze.Wenn Sie mit anderen Materialien nicht einverstanden sind, dann posten Sie es. – Songo

2

Möchten Sie überprüfen, ob der Benutzer bei ZendFramework angemeldet ist? Versuchen Sie folgendes:

Platz diese in jedem Ort des Controllers zu ‚Debug‘, und legen Sie sich in der Spitze oder am Anfang des Codes:

if (Zend_Auth::getInstance()->hasIdentity()) echo "oh yeah I'm logged in lol"; die; 
Verwandte Themen