Rumah > Artikel > rangka kerja php > Cara menggunakan jwt dalam laravel
Dengan pembangunan API yang berterusan, semakin banyak aplikasi web perlu menggunakan JSON Web Token (JWT) untuk melaksanakan pengesahan dan kebenaran pengguna. Sebagai rangka kerja pilihan untuk membangunkan API, Laravel juga menyokong JWT. Artikel ini akan memperkenalkan cara menggunakan JWT dalam Laravel.
Apakah itu JWT?
JSON Web Token (JWT) ialah standard terbuka (RFC 7519) untuk menghantar tuntutan dengan selamat sebagai objek JSON antara pihak. JWT boleh digunakan untuk kebenaran, pengesahan dan pertukaran maklumat. JWT biasanya dihantar sebagai token Pembawa dalam pengepala Kebenaran permintaan HTTP.
Struktur JWT terdiri daripada tiga bahagian: pengepala, muatan dan tandatangan. Pengepala dan muatan ialah kedua-dua objek JSON, dan tandatangan ialah hasil yang disulitkan daripada menggabungkan kedua-dua bahagian ini. Oleh kerana struktur JWT sangat mudah, ia boleh dihuraikan dan disahkan dengan mudah.
Bagaimana untuk menggunakan JWT dalam Laravel?
Menggunakan JWT memerlukan pemasangan perpustakaan bergantung berikut dalam projek Laravel: tymondesigns/jwt-auth. Dalam Laravel 5.7 dan ke atas, anda boleh menggunakan arahan berikut untuk memasang pustaka bergantung:
composer require tymon/jwt-auth
Selepas pemasangan selesai, anda perlu menambah penyedia perkhidmatan dan alias berikut dalam fail config/app.php:
'providers' => [ // Other Service Providers TymonJWTAuthProvidersLaravelServiceProvider::class, ], 'aliases' => [ // Other Aliases 'JWTAuth' => TymonJWTAuthFacadesJWTAuth::class, 'JWTFactory' => TymonJWTAuthFacadesJWTFactory::class, ],
Seterusnya, anda perlu menjana kunci JWT. Kunci boleh dijana menggunakan arahan berikut:
php artisan jwt:secret
Perintah ini akan menjana kunci rawak dan menambahnya pada fail config/jwt.php. Adalah penting untuk melindungi kunci ini dan tidak mendedahkannya kepada sesiapa.
Selepas menjana kunci, anda boleh mula menggunakan JWT dalam Laravel. JWT boleh digunakan untuk pengesahan dan kebenaran.
Pengesahan menggunakan JWT
Proses untuk mengesahkan menggunakan JWT dalam Laravel adalah seperti berikut:
Kod untuk menjana JWT dan mengembalikannya kepada pengguna adalah seperti berikut:
public function login(Request $request) { $credentials = $request->only('email', 'password'); if (!$token = JWTAuth::attempt($credentials)) { return response()->json(['error' => 'Unauthorized'], 401); } return response()->json(['token' => $token]); }
Kod untuk mengesahkan JWT dan mengekstrak maklumat pengguna adalah seperti berikut:
public function profile(Request $request) { $user = JWTAuth::parseToken()->authenticate(); return response()->json(['user' => $user]); }
Gunakan JWT untuk kebenaran
Proses untuk menggunakan JWT untuk kebenaran dalam Laravel adalah seperti berikut:
Kod untuk mengesahkan JWT dan menyemak peranan atau kebenaran pengguna adalah seperti berikut:
public function index(Request $request) { $user = JWTAuth::parseToken()->authenticate(); if ($user->hasRole('admin')) { $items = Item::all(); } else { $items = Item::where('user_id', '=', $user->id)->get(); } return response()->json(['items' => $items]); }
Perlu diambil perhatian bahawa kaedah hasRole() di sini ialah kaedah dan keperluan tersuai berada dalam pencapaian model Pengguna.
Ringkasan
Artikel ini memperkenalkan proses penggunaan JWT untuk pengesahan dan kebenaran dalam Laravel. JWT menyediakan mekanisme pengesahan pengguna yang selamat, mudah dan berskala yang melindungi aplikasi daripada pelbagai serangan. Jika anda sedang membangunkan aplikasi web yang memerlukan API, menggunakan JWT ialah pilihan yang baik.
Atas ialah kandungan terperinci Cara menggunakan jwt dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!