Kézikönyv - dokumentáció - zend keretrendszer
A Zend_Auth hitelesítő API-t biztosít, és specifikus adaptereket tartalmaz a közös alkalmazásokhoz.
Megjegyzés. A Zend_Auth osztály végrehajtja a Singleton mintát - csak az osztály egy példánya áll rendelkezésre - a statikus getInstance () módszerrel. Ez azt jelenti, hogy az új vagy a klón kulcsszavak nem működnek a Zend_Auth osztályban. Használja a Zend_Auth :: getInstance () parancsot.
A Zend_Auth adaptert egy adott szolgáltatás, például az LDAP segítségével hitelesítik. RDBMS vagy fájl tárolása. Az adapterek jelentősen eltérőek lehetnek, de néhány alapvető jellemző mindenki számára közös. Például minden Zend_Auth adapter elfogadja a hitelesítő adatokat, végrehajt egy kérelmet a hitelesítési szolgáltatáshoz, és visszaküldi az eredményt.
Minden Zend_Auth adapter végrehajtja a Zend_Auth_Adapter_Interface alkalmazást. Ez az interfész csak egy módot határoz meg: authenticate (). amelyet hitelesítési kérelem végrehajtásához végre kell hajtani. Az illesztőt az autentikálás () előtt kell beállítani. A konfiguráció magában foglalja a hitelesítő adatok (például bejelentkezési és jelszó) beállítását, valamint meghatározott értékek meghatározását, például az adatbázistábla-illesztő adatcsatlakozási beállításait.
Ez egy példa egy olyan illesztőre, amely megköveteli a bejelentkezés és a jelszó beállítását a hitelesítéshez. További részletek, például a hitelesítési szolgáltatás igénylése, rövid időre elhagyták:
osztályú MyAuthAdapter implementálja a Zend_Auth_Adapter_Interface alkalmazást
Amint azt a dokkban jeleztük, a hitelesítő () -nek vissza kell adnia egy példányt a Zend_Auth_Result (vagy annak örökölttől). Ha bármilyen okból nem lehet hitelesíteni, a hitelesítő () hitelesítőnek ki kell vetnie egy kivételt, amely a Zend_Auth_Adapter_Exception-ból származik.
Hitelesítési eredmény
A Zend_Auth adapter hitelesítő () metódusa a Zend_Auth_Result példányt adja vissza a hitelesítési kísérlet eredményének megjelenítéséhez. A Zend_Auth_Result objektum az illesztõvel együtt kerül feltöltésre, amikor létrejön, és a következõ négy módszer jelenti az alapvetõ mûveleteket:
isValid () - csak akkor igazolja a TRUE értéket, ha a hitelesítési kísérlet sikeres.
getIdentity () - visszaadja a hitelesítés eredményében kapott azonosítót.
getMessages () - visszaad egy sor hibaüzenetet, amely a hitelesítési kísérlet során történt.
A felhasználói azonosító tartós tárolása
A hitelesítő adatokat tartalmazó lekérdezés hitelesítése önmagában fontos, de fontos az azonosító megőrzésének fenntartása anélkül, hogy minden egyes kérelemhez hitelesítési adatokat kellene átadni.
A HTTP protokollnak nincs olyan állapota, de technológiák, például cookie-k és munkamenetek kerültek kifejlesztésre, hogy támogassák a kiszolgálóoldali állapotot a webes alkalmazás több kérése között.
Alapértelmezés szerint egy azonosító PHP-munkamenetben történő mentése
Alapértelmezés szerint a Zend_Auth biztosítja a sikeres hitelesítési kísérlet eredményeként kapott azonosító állandó tárolását a PHP munkamenetben.
Ha a kísérlet sikeres, a Zend_Auth :: authenticate () tárolja az azonosítót tartósan tárolva. Ha másképp nincs beállítva, a Zend_Auth a Zend_Auth_Storage_Session tárolóosztályt használja. amely viszont Zend_Session-ot használ. Ehelyett egyéni osztályt lehet használni, akkor kell, hogy adja át Zend_Auth :: setStorage () objektum, amely végrehajtja Zend_Auth_Storage_Interface.
Megjegyzés. Ha az azonosító automatikus mentése egyetlen konkrét esetben sem megfelelő, akkor a fejlesztőnek meg kell tagadnia a Zend_Auth osztály használatát, és közvetlenül használnia kell az adaptert.
1. példa A munkaterületben lévő névtér módosítása
A Zend_Auth_Storage_Session a Zend_Auth névtéren használja. A Zend_Auth_Storage_Session konstruktor másik értékének átadásával felülírható. amelyet továbbít a Zend_Session_Namespace konstruktornak. Ehhez ellenőrizze a hitelesítési kísérletet, mivel a Zend_Auth :: authenticate () automatikusan elmenti az azonosítót.
// Vedd le a Zend_Auth példányt
$ auth = Zend_Auth. getInstance ();