Cara menggunakan rangka kerja Hyperf untuk pengesahan antara muka
Cara menggunakan rangka kerja Hyperf untuk pengesahan antara muka
Pengesahan ialah isu keselamatan yang penting dalam pembangunan aplikasi web, ia boleh melindungi antara muka kami daripada diakses oleh pengguna yang tidak dibenarkan. Apabila menggunakan rangka kerja Hyperf untuk membangunkan antara muka, kita boleh menggunakan mekanisme pengesahan yang disediakan oleh Hyperf untuk melaksanakan pengesahan antara muka. Artikel ini akan memperkenalkan cara menggunakan rangka kerja Hyperf untuk pengesahan antara muka dan memberikan contoh kod khusus.
1. Memahami pengesahan antara muka
Pengesahan antara muka ialah proses mengesahkan maklumat identiti pengguna untuk menentukan sama ada pengguna mempunyai hak untuk mengakses antara muka. Kaedah pengesahan biasa termasuk pengesahan berasaskan token dan pengesahan berasaskan peranan.
Pengesahan berasaskan token dikeluarkan oleh Token selepas pengguna log masuk. Setiap kali pengguna meminta antara muka, pengguna perlu membawa Token dalam pengepala permintaan Pelayan mengesahkan kesahihan Token dan menentukan sama ada identiti pengguna adalah sah.
Pengesahan berasaskan peranan adalah dengan memberikan peranan dan kebenaran yang berbeza kepada pengguna Apabila pengguna meminta antara muka, pelayan akan mengesahkan sama ada pengguna mempunyai hak untuk mengakses antara muka berdasarkan peranan pengguna.
2. Konfigurasikan pengesahan antara muka rangka kerja Hyperf
- Pasang komponen jwt
Rangka kerja Hyperf menyediakan komponen Hyperf/Jwt untuk menyokong pengesahan antara muka Kami perlu memasang komponen ini dalam projek. Jalankan arahan berikut dalam direktori akar projek:
composer require hyperf/jwt
- Konfigurasi middleware
Middleware rangka kerja hyperf boleh melakukan beberapa pemprosesan sebelum atau selepas permintaan sampai ke pengawal. Kami boleh melaksanakan pengesahan antara muka dengan mengkonfigurasi middleware.
Tambah kod berikut dalam fail config/autoload/middleware.php:
return [ 'http' => [ AppMiddlewareJwtAuthMiddleware::class, ], ];
- Tulis middleware
Buat fail JwtAuthMiddleware.php dalam direktori app/Middleware dan tulis kod berikut:
Pengesahan Antara Muka Hyperf- Log masuk menjana Token
<?php declare(strict_types=1); namespace AppMiddleware; use HyperfDiAnnotationInject; use HyperfHttpServerContractRequestInterface; use HyperfHttpServerContractResponseInterface; use HyperfUtilsContext; use HyperfUtilsExceptionParallelExecutionException; use Phper666JwtAuthJwt; class JwtAuthMiddleware implements MiddlewareInterface { /** * @Inject * @var Jwt */ protected $jwt; /** * @Inject * @var RequestInterface */ protected $request; /** * @Inject * @var ResponseInterface */ protected $response; /** * 接口鉴权逻辑处理 */ public function process(RequestInterface $request, RequestHandlerInterface $handler): ResponseInterface { if (!$this->jwt->checkToken()) { return $this->response->json([ 'code' => 401, 'message' => 'Unauthorized', ]); } // 鉴权通过,将用户信息保存在Context中,后续控制器可通过Context获取用户信息 Context::set('user', $this->jwt->getParserData()); return $handler->handle($request); } }
- Pengesahan Antaramuka
<?php declare(strict_types=1); namespace AppController; use HyperfHttpServerAnnotationAutoController; use HyperfDiAnnotationInject; use Phper666JwtAuthJwt; /** * @AutoController */ class AuthController { /** * @Inject * @var Jwt */ protected $jwt; public function login() { // 获取用户信息 $userInfo = [ 'user_id' => 1, 'username' => 'admin', ]; // 生成Token $token = $this->jwt->getToken($userInfo); // 返回Token给前端 return [ 'code' => 200, 'message' => 'success', 'data' => [ 'token' => $token, ], ]; } }Melalui langkah di atas, kami boleh melaksanakan pengesahan antara muka dalam rangka kerja Hyperf. Dalam antara muka yang memerlukan pengesahan, gunakan perisian tengah untuk mengesahkan dan mengesahkan permintaan, dan kemudian melaksanakan pemprosesan yang sepadan berdasarkan hasil pengesahan. Ini boleh memastikan keselamatan antara muka dengan berkesan dan memastikan bahawa hanya pengguna yang dibenarkan boleh mengakses antara muka.
Atas ialah kandungan terperinci Cara menggunakan rangka kerja Hyperf untuk pengesahan antara muka. 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

MinGW - GNU Minimalis untuk Windows
Projek ini dalam proses untuk dipindahkan ke osdn.net/projects/mingw, anda boleh terus mengikuti kami di sana. MinGW: Port Windows asli bagi GNU Compiler Collection (GCC), perpustakaan import yang boleh diedarkan secara bebas dan fail pengepala untuk membina aplikasi Windows asli termasuk sambungan kepada masa jalan MSVC untuk menyokong fungsi C99. Semua perisian MinGW boleh dijalankan pada platform Windows 64-bit.

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

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

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa