Manual - documentație - cadru zend

Zend_Auth oferă un API pentru autentificare și include adaptoare specifice pentru aplicații comune.

Notă. Clasa Zend_Auth implementează modelul Singleton - doar o singură instanță a clasei este disponibilă - prin metoda static getInstance (). Aceasta înseamnă că cuvintele noi sau clona nu vor funcționa cu clasa Zend_Auth. În schimb, utilizați Zend_Auth :: getInstance ().






Adaptorul Zend_Auth este utilizat pentru autentificare printr-un anumit serviciu, cum ar fi LDAP. RDBMS sau depozitarea fișierelor. Adaptorii pot varia semnificativ, însă unele caracteristici de bază sunt comune tuturor. De exemplu, toți adaptorii Zend_Auth acceptă acreditări, execută o cerere către serviciul de autentificare și returnează rezultatul.

Fiecare adaptor Zend_Auth implementează Zend_Auth_Adapter_Interface. Această interfață definește o singură metodă: authenticate (). care trebuie implementate pentru a efectua o cerere de autentificare. Adaptorul trebuie să fie configurat înainte de a apela autentificarea (). Configurația include setarea acreditărilor (de exemplu, login și parola) și definirea unor valori specifice, cum ar fi setările de conexiune la baza de date pentru adaptorul de tabelă de bază de date.

Acesta este un exemplu de adaptor care vă cere să stabiliți un login și o parolă pentru autentificare. Alte detalii, cum ar fi modul în care se solicită serviciul de autentificare, au fost omise pentru scurtă durată:

clasa MyAuthAdapter implementează Zend_Auth_Adapter_Interface

Așa cum este indicat în doc, authenticate () trebuie să returneze o instanță a Zend_Auth_Result (sau moștenită de la ea). Dacă, din orice motiv, autentificarea nu este posibilă, authenticate () trebuie să arunce o excepție care derivă din Zend_Auth_Adapter_Exception.







Rezultat de autentificare

Metoda autentificare () a adaptorului Zend_Auth returnează instanța Zend_Auth_Result pentru a reprezenta rezultatul încercării de autentificare. Obiectul Zend_Auth_Result este populate cu adaptorul atunci când este creat și următoarele patru metode reprezintă setul său de bază de operații:

isValid () - returnează TRUE numai în cazul în care încercarea de autentificare reușește.

getIdentity () - returnează identificatorul obținut în rezultatul autentificării.

getMessages () - returnează o serie de mesaje de eroare care au avut loc în timpul încercării de autentificare.

Depozitarea persistentă a identificatorului de utilizator

Autentificarea unei interogări care conține datele de identificare este importantă în sine, dar este, de asemenea, important să se mențină păstrarea identificatorului fără a trebui să se transmită acreditările cu fiecare cerere.

Protocolul HTTP nu are stări, însă au fost dezvoltate tehnologii cum ar fi cookie-urile și sesiunile pentru a suporta starea de server-server între mai multe cereri către aplicația Web.

Se salvează un identificator într-o sesiune PHP, în mod implicit

În mod implicit, Zend_Auth asigură stocarea permanentă a identificatorului obținut ca rezultat al unei încercări de autentificare de succes în sesiunea PHP.

Dacă încercarea este reușită, Zend_Auth :: authenticate () stochează identificatorul în spațiu de stocare permanent. Dacă nu este configurat altfel, Zend_Auth utilizează clasa de stocare Zend_Auth_Storage_Session. care la rândul său utilizează Zend_Session. În schimb, o clasă personalizată poate fi utilizată, trebuie să treci Zend_Auth :: setStorage () un obiect care implementează Zend_Auth_Storage_Interface.

Notă. În cazul în care salvarea automată a identificatorului nu este adecvată într-un anumit caz, dezvoltatorul ar trebui să refuze utilizarea clasei Zend_Auth și să utilizeze direct adaptorul.

Exemplu # 1 Schimbarea spațiului de nume într-o sesiune

Zend_Auth_Storage_Session utilizează spațiul de nume "Zend_Auth". Acesta poate fi suprascris prin transmiterea unei valori diferite la constructorul Zend_Auth_Storage_Session. care vor fi transmise constructorului Zend_Session_Namespace. Acest lucru trebuie făcut înainte de a încerca o încercare de autentificare, deoarece Zend_Auth :: authenticate () salvează automat identificatorul.

// Descărcați singurul exemplu al instanței Zend_Auth

$ auth = Zend_Auth. getInstance ();







Articole similare

Trimiteți-le prietenilor: