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.