Zend Framework - Otentikasi
Otentikasi adalah salah satu fitur terpenting dan harus dimiliki dalam aplikasi web apa pun. Zend Framework menyediakan komponen terpisah untuk menangani otentikasi, yang disebut sebagaizend-authentication.
Instal Komponen Otentikasi
Komponen otentikasi dapat diinstal menggunakan berikut ini Composer perintah.
composer require zendframework/zend-authentication
Konsep
Biasanya, pengembang menulis fungsi php untuk mengautentikasi detail pengguna pada sumber data. Setelah otentikasi selesai, detail otentikasi disimpan untuk permintaan selanjutnya. Zend Framework menggeneralisasi konsep ini dan menyediakan dua kelas, yang dijelaskan di bawah -
Kelas 1 Zend \ Authentication \ Adapter \ AdaptorInterface
Kelas ini menyediakan metode tunggal, authenticateuntuk menulis logika otentikasi. Metode otentikasi mengembalikan instanceZend\Authentication\Result kelas.
Ini Resultobjek memegang status otentikasi; identitas jika otentikasi berhasil dan pesan kesalahan, jika otentikasi gagal. Tanda tangan dari antarmuka otentikasi dan kelas hasil adalah sebagai berikut -
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 menyediakan implementasi default untuk melakukan otentikasi terhadap database, ldap, http basic dan digest credentials. SebuahAdaptor mengautentikasi tetapi tidak menyimpan detail untuk permintaan di masa mendatang.
Kelas 2 Zend \ Authentication \ AuthenticationService
AuthenticationService adalah komponen utama, yang menggunakan adaptor yang sudah dikonfigurasi untuk tujuan otentikasi. Setelah otentikasi selesai, itu menyimpan rincian otentikasi dan menyediakan metode,hasIdentity() untuk memeriksa apakah identitas tersedia, getIdentity() untuk mendapatkan detail otentikasi dan clearIdentity() untuk menghapus detail otentikasi.
Daftar kode parsial untuk menggunakan AuthenticationService ini adalah sebagai berikut -
$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();
Hal-hal yang terkait dengan otorisasi dikemas sebagai dua modul terpisah, yaitu - zend-permissions-acl dan zend-permissions-rbac. Zend-izin-acl didasarkan pada daftar kontrol akses dan zend-izin-rbac didasarkan pada daftar kontrol akses berbasis peran. Mereka menyediakan abstraksi tingkat tinggi dari konsep ACL & RBAC dan membantu dalam menulis aplikasi kelas perusahaan.