Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Perisian tengah Zend Framework: Tambahkan fungsi log masuk sosial pada aplikasi web

Perisian tengah Zend Framework: Tambahkan fungsi log masuk sosial pada aplikasi web

PHPz
PHPzasal
2023-07-28 19:21:101000semak imbas

Zend Framework ialah rangka kerja sumber terbuka berdasarkan PHP yang menyediakan banyak alat dan komponen berkuasa untuk membina aplikasi web boleh skala. Artikel ini akan memperkenalkan cara menggunakan perisian tengah Zend Framework untuk menambah fungsi log masuk sosial pada aplikasi web.

Middleware ialah sejenis kod yang dilaksanakan sebelum atau selepas permintaan masuk ke dalam aplikasi anda. Ia membolehkan pembangun menyesuaikan dan memanjangkan proses pengendalian permintaan. Rangka Kerja Zend menyediakan cara yang fleksibel untuk mentakrif dan menggunakan perisian tengah.

Pertama, kita perlu memasang Zend Framework dan komponen yang berkaitan. Ketergantungan boleh diurus menggunakan Komposer. Jalankan arahan berikut dalam baris arahan:

composer require zendframework/zend-expressive zendframework/zend-diactoros

Setelah dipasang, kami boleh mencipta perisian tengah log masuk sosial yang mudah. Mula-mula, cipta fail SocialMiddleware.php dalam direktori projek, dan kemudian tambahkan kod berikut pada fail: SocialMiddleware.php文件,然后将以下代码添加到文件中:

<?php

namespace AppMiddleware;

use PsrHttpMessageServerRequestInterface as Request;
use PsrHttpMessageResponseInterface as Response;
use ZendDiactorosResponseRedirectResponse;
use ZendExpressiveHelperUrlHelper;

class SocialMiddleware
{
    private $urlHelper;

    public function __construct(UrlHelper $urlHelper)
    {
        $this->urlHelper = $urlHelper;
    }

    public function __invoke(Request $request, Response $response, callable $next = null)
    {
        if (!$this->isLoggedIn()) {
            // 用户未登录,重定向到登录页面
            $loginUrl = $this->urlHelper->generate('login');
            return new RedirectResponse($loginUrl);
        }

        // 用户已登录,继续处理请求
        return $next($request, $response);
    }

    private function isLoggedIn()
    {
        // 检查用户是否已登录,这里只是一个示例
        return isset($_SESSION['user']);
    }
}

上述中间件基本思路如下:

  1. 检查用户是否已登录,如果未登录,则重定向到登录页面。
  2. 如果已登录,则继续处理请求。

接下来,我们需要在应用程序中注册该中间件。打开config/pipeline.php文件,并将以下代码添加到return $pipeline;之前:

$app->pipe('/admin', AppMiddlewareSocialMiddleware::class);

上述代码中,/admin表示中间件应用的路径,AppMiddlewareSocialMiddleware::class为中间件的类名。

最后,我们需要定义一个路由来处理登录逻辑。打开config/routes.php文件,并添加以下代码:

$app->get('/login', AppActionLoginAction::class, 'login');
$app->get('/admin/dashboard', AppActionDashboardAction::class, 'dashboard');

上述代码将/login路径映射到AppActionLoginAction::class,将/admin/dashboard路径映射到AppActionDashboardAction::class

至此,我们已经完成了使用Zend Framework中间件来实现社交登录功能的代码。

AppActionLoginAction中,我们可以使用适当的社交登录库(如OAuth或OpenID Connect)来处理实际的登录逻辑。
AppActionDashboardAction中,我们可以渲染用户的仪表板界面。

要测试这个功能,我们可以启动内置的PHP开发服务器:

php -S localhost:8000 -t public/

然后在浏览器中访问http://localhost:8000/admin/dashboardrrreee

Idea asas perisian tengah di atas adalah seperti berikut:

  1. Semak sama ada pengguna telah Log masuk, atau ubah hala ke halaman log masuk jika tidak log masuk.
  2. Jika log masuk, teruskan memproses permintaan.
Seterusnya, kita perlu mendaftarkan middleware dalam aplikasi. Buka fail config/pipeline.php dan tambah kod berikut sebelum return $pipeline;:

rrreee

Dalam kod di atas, /admin Mewakili laluan aplikasi middleware dan AppMiddlewareSocialMiddleware::class ialah nama kelas middleware. 🎜🎜Akhir sekali, kita perlu menentukan laluan untuk mengendalikan logik log masuk. Buka fail config/routes.php dan tambahkan kod berikut: 🎜rrreee🎜Kod di atas memetakan laluan /login ke AppActionLoginAction::class, Petakan laluan /admin/dashboard ke AppActionDashboardAction::class. 🎜🎜Pada ketika ini, kami telah melengkapkan kod menggunakan perisian tengah Zend Framework untuk melaksanakan fungsi log masuk sosial. 🎜🎜Dalam AppActionLoginAction kita boleh menggunakan perpustakaan log masuk sosial yang sesuai seperti OAuth atau OpenID Connect untuk mengendalikan logik log masuk sebenar.
Dalam AppActionDashboardAction, kami boleh memaparkan antara muka papan pemuka pengguna. 🎜🎜Untuk menguji ciri ini, kita boleh memulakan pelayan pembangunan PHP terbina dalam: 🎜rrreee🎜 Kemudian lawati http://localhost:8000/admin/dashboard dalam penyemak imbas. 🎜🎜Kesimpulannya, perisian tengah Zend Framework ialah alat berkuasa yang boleh membantu kami menambahkan fungsi log masuk sosial ke aplikasi web dengan mudah. Dengan menggunakan perpustakaan log masuk sosial yang sesuai, kami boleh melaksanakan pengesahan pengguna dan fungsi papan pemuka. 🎜🎜Di atas adalah pengenalan kepada perisian tengah Zend Framework dan fungsi log masuk sosial. Harap artikel ini membantu anda! 🎜

Atas ialah kandungan terperinci Perisian tengah Zend Framework: Tambahkan fungsi log masuk sosial pada aplikasi web. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn