Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk melaksanakan pengesahan dalam rangka kerja Slim

Bagaimana untuk melaksanakan pengesahan dalam rangka kerja Slim

PHPz
PHPzasal
2023-07-30 19:01:50908semak imbas

Cara melaksanakan pengesahan dalam rangka kerja Slim

Slim ialah rangka kerja PHP ringan yang digunakan secara meluas untuk membina aplikasi web yang ringkas, pantas dan mudah diselenggara. Apabila membangunkan aplikasi web, pengesahan adalah bahagian yang sangat penting untuk melindungi data pengguna dan keselamatan sistem. Artikel ini akan menerangkan cara melaksanakan pengesahan dalam rangka kerja Slim dan memberikan contoh kod yang sepadan.

  1. Pasang rangka kerja Slim

Mula-mula, anda perlu memasang rangka kerja Slim dalam persekitaran PHP. Ia boleh dipasang melalui Komposer, cuma jalankan arahan berikut:

composer require slim/slim
  1. Cipta Apl Slim

Cipta fail PHP baharu dan tulis kod berikut untuk mencipta aplikasi Slim mudah:

<?php
use SlimFactoryAppFactory;

require __DIR__ . '/vendor/autoload.php';

$app = AppFactory::create();

$app->run();

Simpan dan jalankan fail ini, lawati URL http://localhost:8000/, dan anda akan melihat halaman alu-aluan lalai Slim.

  1. Buat Authentication Middleware

Buat fail PHP baharu dan tulis kod berikut untuk mencipta Authentication Middleware:

<?php
use PsrHttpMessageResponseInterface as Response;
use PsrHttpMessageServerRequestInterface as Request;
use SlimExceptionHttpUnauthorizedException;

class AuthMiddleware {
    public function __invoke(Request $request, Response $response, $next) {
        // 在这里进行身份验证逻辑,例如检查会话或令牌
        $authenticated = true; // 假设验证通过

        if (!$authenticated) {
            throw new HttpUnauthorizedException($request);
        }

        $response = $next($request, $response);

        return $response;
    }
}

Dalam kod di atas, kami telah mencipta kelas AuthMiddleware yang melaksanakan _ _invoke kaedah, iaitu kaedah panggilan lalai kaedah kelas. Dalam kaedah ini, kita boleh melakukan logik pengesahan dan membuang HttpUnauthorizedException jika pengesahan gagal. Jika tidak, kami terus memproses permintaan dan mengembalikan respons.

  1. Daftar Authentication Middleware

Ubah suai fail aplikasi Slim sebelumnya dan tambah kod berikut untuk mendaftar Authentication Middleware:

$app->add(new AuthMiddleware());

Kini, setiap permintaan melalui aplikasi Slim akan melalui Authentication Middleware. Jika pengesahan gagal, ralat 401 (Tidak dibenarkan) akan dikembalikan.

  1. Menggunakan Perisian Tengah Pengesahan

Untuk menggunakan perisian tengah pengesahan untuk melindungi laluan atau kumpulan laluan tertentu, anda boleh menambah perisian tengah dalam definisi laluan yang sepadan. Contohnya, untuk melindungi laluan "/api/users", anda boleh menambah kod berikut dalam fail aplikasi:

$app->group('/api', function ($app) {
    $app->group('/users', function ($app) {
        $app->get('', function (Request $request, Response $response, $args) {
            // 这里是受保护的代码
            return $response->getBody()->write('Authenticated!');
        });
    });
})->add(new AuthMiddleware());

Dalam contoh di atas, kami mencipta kumpulan laluan menggunakan kaedah $app->group, yang mengandungi laluan "/api/users" yang dilindungi. Kemudian kami menambah perisian tengah AuthMiddleware pada kumpulan penghalaan ini.

Sekarang apabila mengakses "/api/users", jika pengesahan berjaya, "Disahkan akan dikembalikan."

Setakat ini, kami telah berjaya melaksanakan pengesahan dalam rangka kerja Slim. Dengan menggunakan perisian tengah pengesahan, anda boleh memastikan bahawa hanya pengguna yang dibenarkan boleh mengakses laluan yang dilindungi dengan melakukan semakan pengesahan sebelum setiap permintaan. Dengan menambahkan perisian tengah pada kumpulan penghalaan yang berbeza, anda boleh melindungi API atau halaman yang berbeza mengikut keperluan.

Dalam aplikasi sebenar, ia boleh diubah suai dan dikembangkan mengikut keperluan perniagaan tertentu dan kaedah pengesahan identiti. Sebagai contoh, anda boleh mengesahkan berdasarkan maklumat pengguna dalam pangkalan data, atau menggunakan token JWT untuk pengesahan, dsb.

Saya harap artikel ini dapat membantu anda melaksanakan fungsi pengesahan dalam rangka kerja Slim.

Atas ialah kandungan terperinci Bagaimana untuk melaksanakan pengesahan dalam rangka kerja Slim. 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