Rumah > Artikel > rangka kerja php > laravel jwt padam
Kata Pengantar
Dalam proses menggunakan Laravel dan JWT untuk pembangunan web, anda mungkin menghadapi situasi memadamkan JWT Artikel ini akan memperkenalkan cara memadamkan JWT dalam rangka kerja Laravel.
Keperluan memadamkan JWT
JWT menyelesaikan isu pengesahan dan kebenaran pengguna dengan baik, tetapi dalam beberapa kes, anda mungkin perlu memadamkan JWT. Berikut ialah beberapa sebab:
Langkah-langkah untuk memadamkan JWT
Untuk memadamkan JWT, terdapat tiga langkah:
Kami akan menerangkan langkah-langkah ini dengan lebih terperinci.
Membatalkan JWT
Pembatalan JWT memerlukan anda mengekalkan senarai hitam JWT. Apabila pengguna log keluar atau keluar dari aplikasi, tambahkan JWT pengguna ke senarai hitam. Apabila pengguna cuba mengakses aplikasi anda menggunakan JWT ini, aplikasi anda menyemak sama ada JWT berada dalam senarai hitam. Jika ya, pengguna tidak dibenarkan memasuki aplikasi anda. Berikut ialah langkah-langkah untuk mencapainya:
Langkah 1: Cipta perisian tengah
Buat perisian tengah yang dipanggil "JwtBlacklist".
php artisan make:middleware JwtBlacklist
Langkah 2: Tulis kod
Tulis kod berikut dalam kaedah pemegang middleware:
public function handle($request, Closure $next) { $token = $request->bearerToken(); if(auth()->check()){ auth()->logout(); JWTAuth::invalidate(JWTAuth::getToken()); return response()->json(['message' => 'Logout successful']); }elseif($token){ try { JWTAuth::parseToken()->authenticate(); JWTAuth::invalidate(JWTAuth::getToken()); return response()->json(['message' => 'Logout successful']); } catch (JWTException $e) { // ignore errors } } return $next($request); }
Langkah 3: Daftar middleware
Dalam apl Daftar middleware dalam tatasusunan $routeMiddleware bagi fail /Http/Kernel.php.
'jwt.blacklist' => AppHttpMiddlewareJwtBlacklist::class,
Ubah suai tempoh sah JWT
JWT terdiri daripada tiga bahagian, iaitu pengepala (objek JSON yang dikodkan Base64), muatan (objek JSON yang dikodkan Base64) dan tandatangan. Oleh itu, anda boleh menukar tempoh sah dalam beban.
Dalam Laravel/JWT, anda boleh menggunakan kod seperti ini:
public function login(Request $request) { $credentials = $request->only('email', 'password'); if ($token = JWTAuth::attempt($credentials, ['exp' => Carbon::now()->addHours(24)->timestamp])) { return response()->json(['message' => 'Success', 'token' => $token]); } return response()->json(['error' => 'Unauthorized'], 401); }
Dalam kod di atas, kami menetapkan tempoh sah JWT kepada 24 jam.
Padam JWT
Jika anda memerlukan pengguna memadamkan JWT secara manual, anda perlu menjelaskan maklumat ini kepada pengguna. Anda boleh menyediakan butang atau pautan untuk tindakan log keluar supaya pengguna boleh memadamkan JWT.
Jika anda ingin memadamkan JWT dengan menulis kod, anda boleh menambah kod berikut pada pengawal anda:
public function logout(Request $request) { JWTAuth::invalidate(JWTAuth::getToken()); return response()->json(['message' => 'Logout successful']); }
Pengawal ini akan memadamkan JWT apabila pengguna mengklik butang log keluar.
Kesimpulan
Artikel ini menerangkan cara memadamkan JWT dalam Laravel dan JWT. Anda boleh melakukan ini dengan membatalkan, mengubah suai tempoh sah JWT dan memadamkan JWT. Jika anda mempunyai sebarang pertanyaan atau pertanyaan, sila tinggalkan mesej di ruangan komen dan saya akan membalas secepat mungkin.
Atas ialah kandungan terperinci laravel jwt padam. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!