Zend Framework - Uwierzytelnianie

Uwierzytelnianie jest jedną z najważniejszych i koniecznych funkcji w każdej aplikacji internetowej. Zend Framework dostarcza oddzielny komponent do obsługi uwierzytelniania, nazywanyzend-authentication.

Zainstaluj składnik uwierzytelniania

Komponent uwierzytelniający można zainstalować, korzystając z następującego rozwiązania Composer Komenda.

composer require zendframework/zend-authentication

Pojęcie

Zwykle programista pisze funkcję php w celu uwierzytelnienia szczegółów użytkownika w źródle danych. Po zakończeniu uwierzytelniania szczegóły uwierzytelniania są utrwalane dla kolejnych żądań. Zend Framework uogólnia tę koncepcję i zapewnia dwie klasy, które wyjaśniono poniżej -

Klasa 1 Zend \ Authentication \ Adapter \ AdaptorInterface

Ta klasa udostępnia jedną metodę, authenticatenapisać logikę uwierzytelniania. Metoda uwierzytelniania zwraca wystąpienieZend\Authentication\Result klasa.

To Resultobiekt posiada status uwierzytelnienia; tożsamość, jeśli uwierzytelnianie powiedzie się i komunikat o błędzie, jeśli uwierzytelnianie się nie powiedzie. Podpis uwierzytelnionego interfejsu i klasy wyników jest następujący -

AdaptorInterface

namespace Zend\Authentication\Adaptor; 
public function authenticate() { 
   // code 
}

Result class

namespace Zend\Authentication; 
class Result { 
   public function __construct($code, $identity, array $messages = []); 
}

Zend Framework zapewnia domyślną implementację uwierzytelniania w bazie danych, podstawowych danych uwierzytelniających ldap, http i skrócie. NaAdaptor uwierzytelnia, ale nie utrwala szczegółów dla przyszłych żądań.

Klasa 2 Zend \ Authentication \ AuthenticationService

AuthenticationService jest głównym składnikiem, który używa już skonfigurowanego adaptera do celów uwierzytelniania. Po zakończeniu uwierzytelniania zachowuje szczegóły uwierzytelniania i udostępnia metody,hasIdentity() sprawdzić, czy tożsamość jest dostępna, getIdentity() aby uzyskać szczegóły uwierzytelniania i clearIdentity() aby wyczyścić szczegóły uwierzytelniania.

Częściowy wykaz kodu do korzystania z tej usługi AuthenticationService jest następujący -

$adap = new Adapter($username, $password);  
$auth = new AuthenticationService(); $result = $auth->authenticate($adap);  
if($result->isValid) { $identity = $auth->getIdentity(); } else { // process $result->getMessages() 
}  
// clear 
$auth->clearIdentity();

Rzeczy związane z autoryzacją są pakowane jako dwa oddzielne moduły, które są - zend-permissions-acl i zend-permissions-rbac. Zend-permissions-acl jest oparty na liście kontroli dostępu, a zend-permissions-rbac na liście kontroli dostępu opartej na rolach. Zapewniają wysoki poziom abstrakcji koncepcji ACL i RBAC oraz pomagają w pisaniu aplikacji klasy korporacyjnej.