Zend Framework - Kimlik Doğrulama
Kimlik doğrulama, herhangi bir web uygulamasındaki en önemli ve sahip olunması gereken özelliklerden biridir. Zend Framework, kimlik doğrulamasını işlemek için ayrı bir bileşen sağlar.zend-authentication.
Bir Kimlik Doğrulama Bileşeni Kurun
Kimlik doğrulama bileşeni aşağıdakiler kullanılarak kurulabilir Composer komut.
composer require zendframework/zend-authentication
Konsept
Genellikle, bir geliştirici, bir veri kaynağına karşı kullanıcı ayrıntılarını doğrulamak için bir php işlevi yazar. Kimlik doğrulama yapıldıktan sonra, kimlik doğrulama ayrıntıları sonraki istekler için saklanır. Zend Framework bu kavramı genelleştirir ve aşağıda açıklanan iki sınıf sağlar -
Sınıf 1 Zend \ Authentication \ Adapter \ AdaptorInterface
Bu sınıf tek bir yöntem sağlar, authenticatekimlik doğrulama mantığını yazmak için. Authenticate yöntemi bir örneğini döndürürZend\Authentication\Result sınıf.
Bu Resultnesne kimlik doğrulama durumunu tutar; kimlik doğrulama başarılı olursa kimlik ve kimlik doğrulama başarısız olursa bir hata mesajı. Kimlik doğrulama arabiriminin ve sonuç sınıfının imzası aşağıdaki gibidir -
AdaptorInterface
namespace Zend\Authentication\Adaptor;
public function authenticate() {
// code
}
Result class
namespace Zend\Authentication;
class Result {
public function __construct($code, $identity, array $messages = []);
}
Zend Çerçevesi, veritabanı, ldap, http temel ve özet kimlik bilgileriyle kimlik doğrulaması yapmak için varsayılan bir uygulama sağlar. BirAdaptor kimlik doğrulaması yapar, ancak gelecekteki talepler için ayrıntıları ısrarla saklamaz.
Sınıf 2 Zend \ Authentication \ AuthenticationService
AuthenticationService, kimlik doğrulama amacıyla önceden yapılandırılmış adaptörü kullanan ana bileşendir. Kimlik doğrulama yapıldıktan sonra, kimlik doğrulama ayrıntılarını sürdürür ve yöntemler sağlar,hasIdentity() bir kimlik olup olmadığını kontrol etmek için, getIdentity() kimlik doğrulama ayrıntılarını almak ve clearIdentity() kimlik doğrulama ayrıntılarını temizlemek için.
Bu AuthenticationService hizmetini kullanmak için kısmi kod listesi aşağıdaki gibidir -
$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();
Yetkilendirmeyle ilgili şeyler iki ayrı modül olarak paketlenmiştir: zend-permissions-acl ve zend-permissions-rbac. Zend-permissions-acl, Erişim kontrol listesine dayanır ve zend-permissions-rbac, role dayalı erişim kontrol listesine bağlıdır. ACL ve RBAC konseptinin üst düzey soyutlamasını sağlarlar ve kurumsal düzeyde uygulamanın yazılmasına yardımcı olurlar.