


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!

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

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Prinsip perisian tengah tomcat dilaksanakan berdasarkan spesifikasi Java Servlet dan Java EE. Sebagai bekas Servlet, Tomcat bertanggungjawab untuk memproses permintaan dan respons HTTP dan menyediakan persekitaran berjalan untuk aplikasi Web. Prinsip-prinsip perantara Tomcat terutamanya melibatkan: 1. Model kontena 2. Mekanisme pemprosesan Servlet 5. Pengurusan konfigurasi 7. Penyambung dan pengimbangan; teknologi; 9. Mod terbenam, dsb.

Cara melakukan penyepaduan GoogleDrive menggunakan PHP dan OAuth GoogleDrive ialah perkhidmatan storan awan popular yang membolehkan pengguna menyimpan fail dalam awan dan berkongsinya dengan pengguna lain. Melalui GoogleDriveAPI, kami boleh menggunakan PHP untuk menulis kod untuk disepadukan dengan GoogleDrive untuk melaksanakan operasi muat naik, muat turun, pemadaman dan lain-lain fail. Untuk menggunakan GoogleDriveAPI kita perlu membuat pengesahan melalui OAuth dan

Cara menggunakan middleware untuk penukaran respons dalam Laravel Middleware ialah salah satu ciri yang sangat berkuasa dan praktikal dalam rangka kerja Laravel. Ia membolehkan kami memproses permintaan dan respons sebelum permintaan memasuki pengawal atau sebelum respons dihantar kepada klien. Dalam artikel ini, saya akan menunjukkan cara menggunakan perisian tengah untuk transformasi respons dalam Laravel. Sebelum memulakan, pastikan anda memasang Laravel dan projek baharu dibuat. Sekarang kita akan mengikuti langkah berikut: Cipta perisian tengah baru Terbuka

Cara menggunakan perisian tengah untuk pecutan data dalam Laravel Pengenalan: Apabila membangunkan aplikasi web menggunakan rangka kerja Laravel, pecutan data adalah kunci untuk meningkatkan prestasi aplikasi. Middleware ialah ciri penting yang disediakan oleh Laravel yang mengendalikan permintaan sebelum ia mencapai pengawal atau sebelum respons dikembalikan. Artikel ini akan menumpukan pada cara menggunakan perisian tengah untuk mencapai pecutan data dalam Laravel dan memberikan contoh kod khusus. 1. Apakah middleware itu adalah mekanisme dalam rangka kerja Laravel

Kaedah dan pelaksanaan pengesahan OAuth2 dalam PHP Dengan pembangunan Internet, semakin banyak aplikasi perlu berinteraksi dengan platform pihak ketiga. Untuk melindungi privasi dan keselamatan pengguna, banyak platform pihak ketiga menggunakan protokol OAuth2 untuk melaksanakan pengesahan pengguna. Dalam artikel ini, kami akan memperkenalkan kaedah dan pelaksanaan pengesahan OAuth2 dalam PHP, dan melampirkan contoh kod yang sepadan. OAuth2 ialah rangka kerja kebenaran yang membolehkan pengguna membenarkan aplikasi pihak ketiga mengakses sumber mereka pada pembekal perkhidmatan lain tanpa menyebut

Cara menggunakan perisian tengah untuk mengendalikan pengesahan borang dalam Laravel, contoh kod khusus diperlukan Pengenalan: Pengesahan borang ialah tugas yang sangat biasa dalam Laravel. Untuk memastikan kesahihan dan keselamatan data yang dimasukkan oleh pengguna, kami biasanya mengesahkan data yang diserahkan dalam borang. Laravel menyediakan fungsi pengesahan borang yang mudah dan juga menyokong penggunaan perisian tengah untuk mengendalikan pengesahan borang. Artikel ini akan memperkenalkan secara terperinci cara menggunakan perisian tengah untuk mengendalikan pengesahan borang dalam Laravel dan memberikan contoh kod khusus.

Cara menggunakan perisian tengah untuk penjadualan tugas berjadual dalam Laravel Pengenalan: Laravel ialah rangka kerja sumber terbuka PHP yang popular yang menyediakan alatan yang mudah dan berkuasa untuk membangunkan aplikasi web. Salah satu ciri penting ialah penjadualan tugas bermasa, yang membolehkan pembangun menjalankan tugas tertentu pada selang waktu tertentu. Dalam artikel ini, kami akan memperkenalkan cara menggunakan perisian tengah untuk melaksanakan penjadualan tugas berjadual Laravel dan menyediakan contoh kod khusus. Persediaan Persekitaran Sebelum bermula, kita perlu pastikan

Pengenalan kepada cara menggunakan PHP dan OAuth untuk penyepaduan log masuk QQ: Dengan pembangunan media sosial, semakin banyak laman web dan aplikasi mula menyediakan fungsi log masuk pihak ketiga untuk memudahkan pengguna mendaftar dan log masuk dengan cepat. Sebagai salah satu platform media sosial terbesar di China, QQ juga telah menjadi perkhidmatan log masuk pihak ketiga yang disediakan oleh banyak tapak web dan aplikasi. Artikel ini akan memperkenalkan langkah tentang cara menggunakan PHP dan OAuth untuk penyepaduan log masuk QQ, dengan contoh kod. Langkah 1: Daftar sebagai pembangun platform terbuka QQ Sebelum mula mengintegrasikan log masuk QQ, I
