2012-05-09 12 views
6

Sto imparando Zend Framework, ma ho qualche dubbio sull'uso e sui concetti.Come verificare se l'utente è registrato con Zend Framework?

Voglio verificare se l'utente è registrato per consentire l'accesso a tutte le pagine. Se lo è, mostra la pagina, in caso contrario, visualizza la pagina di accesso.

mie principali dubbi sono cosa devo usare per fare questo (Zend_Auth, Zend_Acl, ecc) e dove per verificare se l'utente è connesso (in ogni controller o il quadro controlla automaticamente questo per ogni requisizione) .

+0

ACL è di solito utilizzato per i livelli di controllo utente. Vuoi Zend_Auth. – Brendan

+0

Per l'utente che ha negativato, perché il -1? –

+1

Perché "la tua domanda non mostra alcuno sforzo di ricerca" (passa il mouse sulla freccia del basso per vederlo). Ci sono un sacco di tutorial da trovare e c'è un eccellente manuale per ZF che ti darebbe le informazioni che stai cercando. In ogni caso la mia risposta dovrebbe farti andare nella giusta direzione. In bocca al lupo. – vascowhite

risposta

5

Lo strumento che si desidera utilizzare è Zend_Auth che è abbastanza facile da usare quando si ottiene il blocco di esso.

Verificando un utente è connesso in può essere semplice come: -

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

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

Il metodo che uso è quello di creare una classe di utente che si occupa di autorizzazione e di controllo degli accessi e iniettare nella mia applicazione come un Action Helper, in modo che in nessuna delle mie controllori posso solo fare: -

$this->user->checkSomething(); 

La parte di autorizzazione deve interessare tutte le parti del sito che non si desidera rendere pubbliche e ogni controller interessato deve verificare che l'utente abbia effettuato l'accesso. Per il controllo degli accessi, viene eseguito in base al ruolo/per risorsa a seconda di come devi essere grana fine. Vedi ACL e AUTH nel manuale.

+0

Non sta usando gli Action Helpers considerati negativi per le prestazioni? – Songo

+0

In che modo? Un helper di azione viene caricato solo se necessario, non ho mai notato problemi di prestazioni con esso. Puoi collegarti a una fonte per questo? Sarei interessato a leggerlo. – vascowhite

+0

beh, è ​​stato menzionato nella risposta accettata per questa domanda (http://stackoverflow.com/questions/4708754/optimising-the-zend-framework). Inoltre ho trovato [questo articolo] (http://www.rmauger.co.uk/2009/03/why-the-zend-framework-actionstack-is-evil/) qualche tempo fa. Non l'ho approfondito molto, perché uso raramente Action Helpers.Se hai altri materiali in disaccordo con questo, allora postalo. – Songo

2

Vuoi verificare se l'utente ha effettuato l'accesso a ZendFramework? Prova questo:

posto questo in qualsiasi parte del controller a 'debug', e metterlo in cima o all'inizio del vostro codice:

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