Аутентификация является одной из наиболее важных и обязательных функций в любом веб-приложении. Zend Framework предоставляет отдельный компонент для обработки аутентификации, который называется zend-аутентификация .
Установите компонент аутентификации
Компонент аутентификации может быть установлен с помощью следующей команды Composer .
composer require zendframework/zend-authentication
концепция
Обычно разработчик пишет функцию php для аутентификации пользовательских данных в источнике данных. Как только аутентификация выполнена, детали аутентификации сохраняются для последующих запросов. Zend Framework обобщает эту концепцию и предоставляет два класса, которые описаны ниже:
Класс 1 Zend \ Authentication \ Adapter \ AdaptorInterface
Этот класс предоставляет один метод аутентификации для записи логики аутентификации. Метод authenticate возвращает экземпляр класса Zend \ Authentication \ Result .
Этот объект Result содержит статус аутентификации; идентификатор, если аутентификация прошла успешно, и сообщение об ошибке, если аутентификация не удалась. Подпись интерфейса проверки подлинности и класса результата выглядит следующим образом:
AdaptorInterface
namespace Zend\Authentication\Adaptor; public function authenticate() { // code }
Результат класса
namespace Zend\Authentication; class Result { public function __construct($code, $identity, array $messages = []); }
Zend Framework предоставляет реализацию по умолчанию для аутентификации по базе данных, ldap, http basic и digest. Адаптер аутентифицирует, но не сохраняет детали для любых будущих запросов.
Класс 2 Zend \ Authentication \ AuthenticationService
AuthenticationService является основным компонентом, который использует уже настроенный адаптер для проверки подлинности. Как только аутентификация завершена, она сохраняет детали аутентификации и предоставляет методы hasIdentity () для проверки доступности идентификатора, getIdentity () для получения деталей аутентификации и clearIdentity () для очистки деталей аутентификации.
Частичный код для использования этого AuthenticationService выглядит следующим образом:
$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();
Вещи, связанные с авторизацией, упакованы в два отдельных модуля: zend-permissions-acl и zend-permissions-rbac . Zend-permissions-acl основан на списке управления доступом, а zend-permissions-rbac основан на списке управления доступом на основе ролей. Они обеспечивают высокоуровневую абстракцию концепции ACL и RBAC и помогают в написании приложения корпоративного уровня.