Cara menggunakan rangka kerja Hyperf untuk pengesahan
Cara menggunakan rangka kerja Hyperf untuk pengesahan
Dalam aplikasi web moden, pengesahan pengguna ialah ciri yang sangat penting. Untuk melindungi maklumat sensitif dan memastikan keselamatan aplikasi, pengesahan memastikan bahawa hanya pengguna yang disahkan boleh mengakses sumber terhad.
Hyperf ialah rangka kerja PHP berprestasi tinggi berdasarkan Swoole, yang menyediakan banyak fungsi dan alatan moden dan cekap. Dalam rangka kerja Hyperf, kita boleh menggunakan pelbagai kaedah untuk melaksanakan pengesahan identiti Dua daripada kaedah yang biasa digunakan akan diperkenalkan di bawah.
- Menggunakan JWT (JSON Web Token)
JWT ialah standard terbuka (RFC 7519) yang mentakrifkan kaedah ringkas dan serba lengkap untuk menghantar maklumat dengan selamat antara pihak yang berkomunikasi. Dalam rangka kerja Hyperf, kita boleh menggunakan pustaka sambungan lcobucci/jwt
untuk mencapai penjanaan dan pengesahan JWT. lcobucci/jwt
扩展库来实现JWT的生成和验证。
首先,我们需要在composer.json文件中添加lcobucci/jwt
库的依赖项:
"require": { "lcobucci/jwt": "^3.4" }
然后执行composer update
命令安装依赖项。
接下来,我们可以创建一个JwtAuthenticator
类,用于生成和验证JWT:
<?php declare(strict_types=1); namespace AppAuth; use HyperfExtAuthAuthenticatable; use HyperfExtAuthContractsAuthenticatorInterface; use LcobucciJWTConfiguration; use LcobucciJWTToken; class JwtAuthenticator implements AuthenticatorInterface { private Configuration $configuration; public function __construct(Configuration $configuration) { $this->configuration = $configuration; } public function validateToken(string $token): bool { $parsedToken = $this->configuration->parser()->parse($token); $isVerified = $this->configuration->validator()->validate($parsedToken, ...$this->configuration->validationConstraints()); return $isVerified; } public function generateToken(Authenticatable $user): string { $builder = $this->configuration->createBuilder(); $builder->issuedBy('your_issuer') ->issuedAt(new DateTimeImmutable()) ->expiresAt((new DateTimeImmutable())->modify('+1 hour')) ->withClaim('sub', (string) $user->getAuthIdentifier()); $token = $builder->getToken($this->configuration->signer(), $this->configuration->signingKey()); return $token->toString(); } }
然后,我们需要在Hyperf框架的容器中注册JwtAuthenticator
类:
HyperfUtilsApplicationContext::getContainer()->define(AppAuthJwtAuthenticator::class, function (PsrContainerContainerInterface $container) { $configuration = LcobucciJWTConfiguration::forAsymmetricSigner( new LcobucciJWTSignerRsaSha256(), LcobucciJWTSignerKeyLocalFileReference::file('path/to/private/key.pem') ); return new AppAuthJwtAuthenticator($configuration); });
最后,在需要认证的路由或控制器方法中,我们可以使用JwtAuthenticator
类来验证用户的JWT:
<?php declare(strict_types=1); namespace AppController; use AppAuthJwtAuthenticator; use HyperfHttpServerAnnotationController; use HyperfHttpServerAnnotationRequestMapping; /** * @Controller(prefix="/api") */ class ApiController { private JwtAuthenticator $authenticator; public function __construct(JwtAuthenticator $authenticator) { $this->authenticator = $authenticator; } /** * @RequestMapping(path="profile", methods="GET") */ public function profile() { $token = $this->request->getHeader('Authorization')[0] ?? ''; $token = str_replace('Bearer ', '', $token); if (!$this->authenticator->validateToken($token)) { // Token验证失败,返回错误响应 return 'Unauthorized'; } // Token验证成功,返回用户信息 return $this->authenticator->getUserByToken($token); } }
- 使用Session
除了JWT认证,Hyperf框架也支持使用Session进行身份认证。我们可以通过配置文件来启用Session认证功能。
首先,我们需要在配置文件config/autoload/session.php
中进行相应的配置,例如:
return [ 'handler' => [ 'class' => HyperfRedisSessionHandler::class, 'options' => [ 'pool' => 'default', ], ], ];
然后,在需要认证的路由或控制器方法中,我们可以使用Hyperf框架提供的AuthManager
类来验证用户的Session:
<?php declare(strict_types=1); namespace AppController; use HyperfHttpServerAnnotationController; use HyperfHttpServerAnnotationRequestMapping; use HyperfExtAuthContractsAuthManagerInterface; /** * @Controller(prefix="/api") */ class ApiController { private AuthManagerInterface $authManager; public function __construct(AuthManagerInterface $authManager) { $this->authManager = $authManager; } /** * @RequestMapping(path="profile", methods="GET") */ public function profile() { if (!$this->authManager->check()) { // 用户未登录,返回错误响应 return 'Unauthorized'; } // 用户已登录,返回用户信息 return $this->authManager->user(); } }
在上述代码中,AuthManagerInterface
lcobucci/jwt
dalam fail composer.json: rrreee
Kemudian laksanakan perintahkemas kini komposer
untuk memasang dependensi . 🎜🎜Seterusnya, kita boleh mencipta kelas JwtAuthenticator
untuk menjana dan mengesahkan JWT: 🎜rrreee🎜Kemudian, kita perlu mendaftarkan kelas JwtAuthenticator
dalam bekas rangka kerja Hyperf: 🎜rrreee🎜Akhir sekali, dalam laluan atau kaedah pengawal yang memerlukan pengesahan, kita boleh menggunakan kelas JwtAuthenticator
untuk mengesahkan JWT pengguna: 🎜rrreee- 🎜Gunakan Sesi🎜🎜🎜 Selain pengesahan JWT, rangka kerja Hyperf juga menyokong penggunaan Sesi untuk pengesahan identiti. Kami boleh mendayakan fungsi pengesahan Sesi melalui fail konfigurasi. 🎜🎜Pertama, kita perlu membuat konfigurasi yang sepadan dalam fail konfigurasi
config/autoload/session.php
, contohnya: 🎜rrreee🎜Kemudian, dalam kaedah laluan atau pengawal yang memerlukan pengesahan, kita boleh gunakan Kelas AuthManager
yang disediakan oleh rangka kerja Hyperf digunakan untuk mengesahkan Sesi pengguna: 🎜rrreee🎜Dalam kod di atas, antara muka AuthManagerInterface
menyediakan banyak kaedah untuk pengesahan dan operasi pengguna , yang boleh menjadi Buat panggilan berdasarkan keperluan sebenar. 🎜🎜Di atas ialah dua kaedah biasa untuk pengesahan identiti menggunakan rangka kerja Hyperf, menggunakan JWT atau Sesi untuk melaksanakan pengesahan pengguna. Berdasarkan keperluan sebenar dan ciri projek, pilih kaedah yang sesuai untuk memastikan keselamatan aplikasi dan pengalaman pengguna. Dalam pembangunan sebenar, anda boleh mengetahui lebih lanjut tentang penggunaan lanjutan dan amalan terbaik berdasarkan dokumentasi dan kod sampel yang disediakan oleh rangka kerja. 🎜Atas ialah kandungan terperinci Cara menggunakan rangka kerja Hyperf untuk pengesahan. 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



Pautan magnet ialah kaedah pautan untuk memuat turun sumber, yang lebih mudah dan cekap daripada kaedah muat turun tradisional. Pautan magnet membolehkan anda memuat turun sumber secara peer-to-peer tanpa bergantung pada pelayan perantara. Artikel ini akan memperkenalkan cara menggunakan pautan magnet dan perkara yang perlu diberi perhatian. 1. Apakah pautan magnet? Pautan magnet ialah kaedah muat turun berdasarkan protokol P2P (Peer-to-Peer). Melalui pautan magnet, pengguna boleh menyambung terus kepada penerbit sumber untuk melengkapkan perkongsian dan muat turun sumber. Berbanding dengan kaedah muat turun tradisional, magnet

Cara menggunakan fail mdf dan fail mds Dengan kemajuan teknologi komputer yang berterusan, kami boleh menyimpan dan berkongsi data dalam pelbagai cara. Dalam bidang media digital, kita sering menghadapi beberapa format fail khas. Dalam artikel ini, kami akan membincangkan format fail biasa - fail mdf dan mds, dan memperkenalkan cara menggunakannya. Pertama, kita perlu memahami maksud fail mdf dan fail mds. mdf ialah lanjutan fail imej CD/DVD, dan fail mds ialah fail metadata bagi fail mdf.

CrystalDiskMark ialah alat penanda aras HDD kecil untuk pemacu keras yang cepat mengukur kelajuan baca/tulis berurutan dan rawak. Seterusnya, biarkan editor memperkenalkan CrystalDiskMark kepada anda dan cara menggunakan crystaldiskmark~ 1. Pengenalan kepada CrystalDiskMark CrystalDiskMark ialah alat ujian prestasi cakera yang digunakan secara meluas yang digunakan untuk menilai kelajuan baca dan tulis serta prestasi pemacu keras mekanikal dan pemacu keadaan pepejal (SSD Prestasi I/O rawak. Ia adalah aplikasi Windows percuma dan menyediakan antara muka mesra pengguna dan pelbagai mod ujian untuk menilai aspek prestasi cakera keras yang berbeza dan digunakan secara meluas dalam ulasan perkakasan

foobar2000 ialah perisian yang boleh mendengar sumber muzik pada bila-bila masa Ia membawakan anda semua jenis muzik dengan kualiti bunyi tanpa kehilangan Versi pemain muzik yang dipertingkatkan membolehkan anda mendapatkan pengalaman muzik yang lebih komprehensif dan selesa mainkan audio lanjutan pada komputer Peranti dipindahkan ke telefon mudah alih untuk memberikan pengalaman main balik muzik yang lebih mudah dan cekap Reka bentuk antara muka adalah ringkas, jelas dan mudah digunakan Ia menggunakan gaya reka bentuk minimalis tanpa terlalu banyak hiasan dan operasi yang menyusahkan untuk bermula dengan cepat. Ia juga menyokong pelbagai kulit dan Tema, memperibadikan tetapan mengikut pilihan anda sendiri, dan mencipta pemain muzik eksklusif yang menyokong main balik berbilang format audio. Ia juga menyokong fungsi perolehan audio untuk melaraskan kelantangan kepada keadaan pendengaran anda sendiri untuk mengelakkan kerosakan pendengaran yang disebabkan oleh kelantangan yang berlebihan. Seterusnya, izinkan saya membantu anda

NetEase Mailbox, sebagai alamat e-mel yang digunakan secara meluas oleh netizen Cina, sentiasa memenangi kepercayaan pengguna dengan perkhidmatannya yang stabil dan cekap. NetEase Mailbox Master ialah perisian e-mel yang dicipta khas untuk pengguna telefon mudah alih. Ia sangat memudahkan proses menghantar dan menerima e-mel dan menjadikan pemprosesan e-mel kami lebih mudah. Jadi bagaimana untuk menggunakan NetEase Mailbox Master, dan apakah fungsi khusus yang ada di bawah, editor tapak ini akan memberi anda pengenalan terperinci, dengan harapan dapat membantu anda. Mula-mula, anda boleh mencari dan memuat turun aplikasi NetEase Mailbox Master di gedung aplikasi mudah alih. Cari "Induk Peti Mel NetEase" dalam App Store atau Baidu Mobile Assistant, dan kemudian ikut gesaan untuk memasangnya. Selepas muat turun dan pemasangan selesai, kami membuka akaun e-mel NetEase dan log masuk. Antara muka log masuk adalah seperti yang ditunjukkan di bawah

Storan awan telah menjadi bahagian yang amat diperlukan dalam kehidupan dan kerja harian kita pada masa kini. Sebagai salah satu perkhidmatan storan awan terkemuka di China, Baidu Netdisk telah memenangi hati sebilangan besar pengguna dengan fungsi storan yang berkuasa, kelajuan penghantaran yang cekap dan pengalaman operasi yang mudah. Dan sama ada anda ingin menyandarkan fail penting, berkongsi maklumat, menonton video dalam talian atau mendengar muzik, Baidu Cloud Disk boleh memenuhi keperluan anda. Walau bagaimanapun, ramai pengguna mungkin tidak memahami penggunaan khusus aplikasi Baidu Netdisk, jadi tutorial ini akan memperkenalkan anda tentang cara menggunakan aplikasi Baidu Netdisk secara terperinci Jika anda masih keliru, sila ikuti artikel ini untuk mengetahui lebih lanjut! Cara menggunakan Cakera Rangkaian Awan Baidu: 1. Pemasangan Mula-mula, semasa memuat turun dan memasang perisian Baidu Cloud, sila pilih pilihan pemasangan tersuai.

MetaMask (juga dipanggil Little Fox Wallet dalam bahasa Cina) ialah perisian dompet penyulitan percuma dan diterima baik. Pada masa ini, BTCC menyokong pengikatan pada dompet MetaMask Selepas mengikat, anda boleh menggunakan dompet MetaMask untuk log masuk dengan cepat, menyimpan nilai, membeli syiling, dsb., dan anda juga boleh mendapatkan bonus percubaan 20 USDT untuk pengikatan pertama. Dalam tutorial dompet BTCCMetaMask, kami akan memperkenalkan secara terperinci cara mendaftar dan menggunakan MetaMask, dan cara mengikat dan menggunakan dompet Little Fox dalam BTCC. Apakah dompet MetaMask? Dengan lebih 30 juta pengguna, MetaMask Little Fox Wallet ialah salah satu dompet mata wang kripto yang paling popular hari ini. Ia percuma untuk digunakan dan boleh dipasang pada rangkaian sebagai sambungan

Selepas lama menekan butang main pembesar suara, sambungkan ke wifi dalam perisian dan anda boleh menggunakannya. Tutorial Model Berkenaan: Xiaomi 12 Sistem: EMUI11.0 Versi: Xiaoai Classmate 2.4.21 Analisis 1 Mula-mula cari butang main pembesar suara, dan tekan dan tahan untuk memasuki mod pengedaran rangkaian. 2 Log masuk ke akaun Xiaomi anda dalam perisian Xiaoai Speaker pada telefon anda dan klik untuk menambah Speaker Xiaoai baharu. 3. Selepas memasukkan nama dan kata laluan wifi, anda boleh menghubungi Xiao Ai untuk menggunakannya. Tambahan: Apakah fungsi yang ada pada Xiaoai Speaker 1 Xiaoai Speaker mempunyai fungsi sistem, fungsi sosial, fungsi hiburan, fungsi pengetahuan, fungsi kehidupan, rumah pintar dan rancangan latihan. Ringkasan/Nota: Apl Xiao Ai mesti dipasang pada telefon mudah alih anda terlebih dahulu untuk sambungan dan penggunaan yang mudah.
