bagaimana cara memvalidasi jwt token di laravel, token di buat di node js

adakah cara untuk memvalidasi token yang di buat sebuah service node js.

token ini akan di validasi di laravel untuk authentication.

payload jwt dari node js kurang lebih seperti ini:

{
  "name": "bagus",
  "email": "bagus@gmail.com",
  "phone": "08....",
  "id": 1,
  "iat": 1679156780,
  "exp": 1679185580
}

di laravel sudah terinstal tymon/jwt-auth

yang saya tau, payload yang di keluarkan

{
  "iss": "https://mydomain.com/api/auth/login",
  "iat": 1679157027,
  "nbf": 1679157027,
  "jti": "lJezfzjVpdjLFHJU",
  "sub": 4,
  "prv": "87e0af1ef9fd15812fdec97153a14e0b047546bb"
}
avatar waziat
@waziat

23 Kontribusi 5 Poin

Diperbarui 1 tahun yang lalu

2 Jawaban:

<div>saya pribadi belum pernah bikin jwt system di service yang berbeda.<br>Apakah kamu sudah mencoba? jika sudah.. masalahnya apa?&nbsp; pastikan menggunakan SECRET ENV yang sama untuk tokennya</div>

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 1 tahun yang lalu

<div>Anda harus Ikuti langkah-langkah ini untuk memvalidasi token JWT di Laravel menggunakan paket tymon/jwt-auth:<br><br><br></div><div>Instal paket:</div><pre>composer require tymon/jwt-auth</pre><div><br><br></div><div>Hasilkan rahasia JWT:</div><pre>php artisan jwt:secret</pre><div><br></div><div><br><br></div><div>Buat middleware untuk menangani validasi token:</div><pre>php artisan make:middleware JwtMiddleware</pre><div><br></div><div>Ini akan membuat file bernama JwtMiddleware.php di direktori app/Http/Middleware Anda.<br>Mekanisme validasi token harus ditambahkan ke middleware:</div><pre>use Tymon\JWTAuth\Facades\JWTAuth; use Tymon\JWTAuth\Exceptions\JWTException;

public function handle($request, Closure $next) { try { $token = JWTAuth::parseToken(); $payload = $token-&gt;getPayload(); } catch (JWTException $e) { return response()-&gt;json(['error' =&gt; 'Token is invalid'], 401); }

if (!$payload) {
    return response()-&amp;gt;json([&#039;error&#039; =&amp;gt; &#039;Token is invalid&#039;], 401);
}

$request-&amp;gt;attributes-&amp;gt;add([&#039;jwt_payload&#039; =&amp;gt; $payload]);

return $next($request);

}</pre><div><br><br></div><div>Token akan diuraikan oleh middleware ini, dan payload akan diekstraksi dan ditambahkan ke atribut permintaan.<br><br>Tambahkan middleware ke rute yang diperlukan autentikasi:</div><pre>Route::middleware('jwt')-&gt;get('/protected', function () { return response()-&gt;json(['message' =&gt; 'Access granted']); });</pre><div><br><br></div><div>Sebelum memberikan akses, rute contoh ini akan membutuhkan penerapan JwtMiddleware.<br><br>Mengenai paruh kedua pertanyaan Anda, jika Anda ingin memvalidasi token yang dihasilkan dalam layanan Node.js, Anda dapat mengurai token di Laravel menggunakan fungsi JWTAuth::parseToken() yang sama. Namun, Anda perlu memastikan bahwa rahasia yang sama digunakan untuk menandatangani token di kedua layanan, dan muatannya kompatibel dengan logika autentikasi di Laravel.</div>

avatar smithy
@smithy

13 Kontribusi 1 Poin

Dipost 1 tahun yang lalu

Login untuk ikut Jawaban