


Perisian tengah Zend Framework: Menambah sokongan log masuk OAuth dan OpenID pada aplikasi
Zend Framework Middleware: Tambahkan sokongan log masuk OAuth dan OpenID pada aplikasi
Dalam aplikasi Internet hari ini, pengesahan pengguna ialah ciri kritikal. Untuk memberikan pengalaman dan keselamatan pengguna yang lebih baik, banyak aplikasi memilih untuk menyepadukan perkhidmatan log masuk pihak ketiga, seperti OAuth dan OpenID. Dalam Rangka Kerja Zend, kami boleh menambah sokongan log masuk OAuth dan OpenID dengan mudah kepada aplikasi melalui perisian tengah.
Pertama, kita perlu memasang modul OAuth dan OpenID bagi Zend Framework. Mereka boleh dipasang melalui Komposer:
composer require zendframework/zend-oauth composer require zendframework/zend-openid
Selepas melengkapkan pemasangan, kami boleh mula menulis perisian tengah untuk mengendalikan pengesahan pengguna.
Pertama, kami mencipta kelas middleware yang dipanggil AuthMiddleware:
use PsrHttpMessageRequestInterface; use PsrHttpMessageResponseInterface; use ZendDiactorosResponseRedirectResponse; use ZendStratigilityMiddlewareInterface; use ZendAuthenticationAuthenticationService; class AuthMiddleware implements MiddlewareInterface { private $authService; public function __construct(AuthenticationService $authService) { $this->authService = $authService; } public function __invoke(RequestInterface $request, ResponseInterface $response, callable $next = null) : ResponseInterface { // 检查用户是否已认证 if ($this->authService->hasIdentity()) { // 用户已认证,继续请求处理 return $next($request, $response); } // 用户未认证,重定向到登录页面 return new RedirectResponse('/login'); } }
Dalam kelas middleware ini, kami menggunakan komponen AuthenticationService Rangka Kerja Zend untuk menyemak sama ada pengguna telah disahkan. Jika pengguna telah disahkan, kami meneruskan pemprosesan permintaan jika tidak, lompat ke halaman log masuk.
Langkah seterusnya, kami mencipta kelas middleware yang dipanggil LoginMiddleware untuk mengendalikan logik log masuk pengguna:
use PsrHttpMessageRequestInterface; use PsrHttpMessageResponseInterface; use ZendDiactorosResponseHtmlResponse; use ZendStratigilityMiddlewareInterface; use ZendAuthenticationAuthenticationService; use ZendAuthenticationAdapterOpenId as OpenIdAdapter; class LoginMiddleware implements MiddlewareInterface { private $authService; public function __construct(AuthenticationService $authService) { $this->authService = $authService; } public function __invoke(RequestInterface $request, ResponseInterface $response, callable $next = null) : ResponseInterface { if ($request->getMethod() === 'POST') { // 处理登录表单提交 $identity = $request->getParsedBody()['identity']; $credential = $request->getParsedBody()['credential']; // 使用OpenID适配器进行认证 $adapter = new OpenIdAdapter(); $adapter->setIdentity($identity); $adapter->setCredential($credential); // 进行认证 $result = $this->authService->authenticate($adapter); if ($result->isValid()) { // 认证成功,存储用户身份信息 $this->authService->getStorage()->write($result->getIdentity()); // 记录用户登录成功的日志 // ... // 重定向到首页 return new RedirectResponse('/'); } // 认证失败,返回登录页面并显示错误信息 return new HtmlResponse($this->renderLoginForm(['error' => '用户名或密码错误'])); } // 显示登录页面 return new HtmlResponse($this->renderLoginForm()); } private function renderLoginForm(array $params = []) : string { // 渲染登录表单模板,可使用Twig等模板引擎 // ... } }
Dalam kelas middleware ini, kami menggunakan OpenIdAdapter Zend Framework untuk pengesahan pengguna. Selepas pengesahan berjaya, kami menyimpan maklumat identiti pengguna dan boleh melakukan beberapa operasi tambahan, seperti merekodkan log log masuk pengguna yang berjaya.
Akhir sekali, kami menambah middleware ini pada aplikasi Zend Framework:
use ZendStratigilityMiddlewarePipe; use ZendAuthenticationAuthenticationService; use ZendDiactorosServerRequestFactory; // 创建Zend Framework应用程序实例 $app = new MiddlewarePipe(); // 创建AuthenticationService实例 $authService = new AuthenticationService(); // 添加OAuth和OpenID登录中间件 $app->pipe(new AuthMiddleware($authService)); $app->pipe(new LoginMiddleware($authService)); // 处理请求 $response = $app(ServerRequestFactory::fromGlobals(), new Response()); // 发送响应 $responseEmitter = new ResponseSapiEmitter(); $responseEmitter->emit($response);
Dalam kod di atas, kami mencipta contoh MiddlewarePipe dan menambah perisian tengah AuthMiddleware dan LoginMiddleware. Kami kemudian menggunakan ServerRequestFactory Zend Framework untuk mencipta contoh permintaan dan menjalankan aplikasi dengan memproses permintaan dan menghantar respons.
Dengan langkah di atas, kami berjaya menambah sokongan log masuk OAuth dan OpenID pada aplikasi. Pengguna kini boleh menggunakan perkhidmatan log masuk pihak ketiga untuk mengesahkan dan memperoleh pengalaman dan keselamatan pengguna yang lebih baik.
Contoh di atas hanyalah demonstrasi mudah, dan mungkin terdapat lebih banyak operasi penyesuaian dan penyepaduan dalam penggunaan sebenar. Walau bagaimanapun, dengan fleksibiliti dan kemudahan penggunaan middleware Zend Framework, kami boleh mencapai operasi ini dengan mudah dan menambah pelbagai ciri pada aplikasi.
Middleware ialah salah satu ciri berkuasa dalam Rangka Kerja Zend, yang menyediakan cara ringkas dan boleh diperluaskan untuk mengendalikan permintaan dan respons HTTP. Sama ada ia adalah pengesahan, kebenaran, pengelogan atau fungsi lain, perisian tengah boleh membantu kami mengendalikannya dengan cepat dan fleksibel. Jika aplikasi anda memerlukan pengesahan pengguna, cuba gunakan middleware untuk menambah sokongan log masuk OAuth dan OpenID!
Atas ialah kandungan terperinci Perisian tengah Zend Framework: Menambah sokongan log masuk OAuth dan OpenID pada aplikasi. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

PHP adalah bahasa skrip sisi pelayan yang digunakan untuk pembangunan web dinamik dan aplikasi sisi pelayan. 1.Php adalah bahasa yang ditafsirkan yang tidak memerlukan kompilasi dan sesuai untuk perkembangan pesat. 2. Kod PHP tertanam dalam HTML, menjadikannya mudah untuk membangunkan laman web. 3. PHP memproses logik sisi pelayan, menghasilkan output HTML, dan menyokong interaksi pengguna dan pemprosesan data. 4. PHP boleh berinteraksi dengan pangkalan data, penyerahan borang proses, dan melaksanakan tugas-tugas sampingan pelayan.

PHP telah membentuk rangkaian sejak beberapa dekad yang lalu dan akan terus memainkan peranan penting dalam pembangunan web. 1) PHP berasal pada tahun 1994 dan telah menjadi pilihan pertama bagi pemaju kerana kemudahan penggunaannya dan integrasi lancar dengan MySQL. 2) Fungsi terasnya termasuk menghasilkan kandungan dinamik dan mengintegrasikan dengan pangkalan data, yang membolehkan laman web dikemas kini secara real time dan dipaparkan secara peribadi. 3) Aplikasi dan ekosistem PHP yang luas telah mendorong kesan jangka panjangnya, tetapi ia juga menghadapi kemas kini versi dan cabaran keselamatan. 4) Penambahbaikan prestasi dalam beberapa tahun kebelakangan ini, seperti pembebasan Php7, membolehkannya bersaing dengan bahasa moden. 5) Pada masa akan datang, PHP perlu menangani cabaran baru seperti kontena dan microservices, tetapi fleksibiliti dan komuniti aktif menjadikannya boleh disesuaikan.

Manfaat utama PHP termasuk kemudahan pembelajaran, sokongan pembangunan web yang kukuh, perpustakaan dan kerangka yang kaya, prestasi tinggi dan skalabilitas, keserasian silang platform, dan keberkesanan kos. 1) mudah dipelajari dan digunakan, sesuai untuk pemula; 2) integrasi yang baik dengan pelayan web dan menyokong pelbagai pangkalan data; 3) mempunyai rangka kerja yang kuat seperti Laravel; 4) Prestasi tinggi dapat dicapai melalui pengoptimuman; 5) menyokong pelbagai sistem operasi; 6) Sumber terbuka untuk mengurangkan kos pembangunan.

PHP tidak mati. 1) Komuniti PHP secara aktif menyelesaikan masalah prestasi dan keselamatan, dan Php7.x meningkatkan prestasi. 2) PHP sesuai untuk pembangunan web moden dan digunakan secara meluas di laman web besar. 3) PHP mudah dipelajari dan pelayan berfungsi dengan baik, tetapi sistem jenis tidak begitu ketat sebagai bahasa statik. 4) PHP masih penting dalam bidang pengurusan kandungan dan e-dagang, dan ekosistem terus berkembang. 5) Mengoptimumkan prestasi melalui OPCACHE dan APC, dan gunakan corak OOP dan reka bentuk untuk meningkatkan kualiti kod.

PHP dan Python mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya bergantung kepada keperluan projek. 1) PHP sesuai untuk pembangunan web, mudah dipelajari, sumber komuniti yang kaya, tetapi sintaks tidak cukup moden, dan prestasi dan keselamatan perlu diberi perhatian. 2) Python sesuai untuk sains data dan pembelajaran mesin, dengan sintaks ringkas dan mudah dipelajari, tetapi terdapat kesesakan dalam kelajuan pelaksanaan dan pengurusan memori.

PHP digunakan untuk membina laman web dinamik, dan fungsi terasnya termasuk: 1. Menjana kandungan dinamik dan menghasilkan laman web secara real time dengan menyambung dengan pangkalan data; 2. Proses Interaksi Pengguna dan Penyerahan Bentuk, Sahkan Input dan Menanggapi Operasi; 3. Menguruskan sesi dan pengesahan pengguna untuk memberikan pengalaman yang diperibadikan; 4. Mengoptimumkan prestasi dan ikuti amalan terbaik untuk meningkatkan kecekapan dan keselamatan laman web.

PHP menggunakan sambungan MySQLI dan PDO untuk berinteraksi dalam operasi pangkalan data dan pemprosesan logik sisi pelayan, dan memproses logik sisi pelayan melalui fungsi seperti pengurusan sesi. 1) Gunakan MySQLI atau PDO untuk menyambung ke pangkalan data dan laksanakan pertanyaan SQL. 2) Mengendalikan permintaan HTTP dan status pengguna melalui pengurusan sesi dan fungsi lain. 3) Gunakan urus niaga untuk memastikan atomik operasi pangkalan data. 4) Mencegah suntikan SQL, gunakan pengendalian pengecualian dan sambungan penutup untuk debugging. 5) Mengoptimumkan prestasi melalui pengindeksan dan cache, tulis kod yang sangat mudah dibaca dan lakukan pengendalian ralat.

Menggunakan penyataan preprocessing dan PDO dalam PHP secara berkesan dapat mencegah serangan suntikan SQL. 1) Gunakan PDO untuk menyambung ke pangkalan data dan tetapkan mod ralat. 2) Buat kenyataan pra -proses melalui kaedah menyediakan dan lulus data menggunakan ruang letak dan laksanakan kaedah. 3) Hasil pertanyaan proses dan pastikan keselamatan dan prestasi kod.


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Versi Mac WebStorm
Alat pembangunan JavaScript yang berguna

EditPlus versi Cina retak
Saiz kecil, penyerlahan sintaks, tidak menyokong fungsi gesaan kod

Dreamweaver Mac版
Alat pembangunan web visual

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Penyesuai Pelayan SAP NetWeaver untuk Eclipse
Integrasikan Eclipse dengan pelayan aplikasi SAP NetWeaver.