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.