Sobes.tech
Junior — Middle

Vai jūs varat dalīties ar savu pieredzi, izmantojot JSON Web Tokens projektos?

sobes.tech AI

Atbilde no AI

PHP projektos ietvaros es izmantojis JSON Web Tokens (JWT), lai īstenotu lietotāju autentifikāciju un autorizāciju. JWT ļauj droši pārsūtīt lietotāja informāciju šifrētā formā starp klientu un serveri, neprasot sesijas glabāšanu serverī.

Galvenie soļi, lietojot JWT:

  1. Veiksmīgas autentifikācijas gadījumā lietotājs saņem JWT, kas satur noderīgu slodzi (piemēram, lietotāja ID, lomas).
  2. Tokens tiek parakstīts ar slepenu atslēgu, lai novērstu falsifikāciju.
  3. Klients saglabā tokenu (piemēram, localStorage) un nosūta to Authorization galvenē turpmākajos pieprasījumos.
  4. Serveris pārbauda tokena parakstu un izvelk datus, lai noteiktu piekļuves tiesības.

Piemērs, kā izveidot JWT, izmantojot firebase/php-jwt bibliotēku:

use Firebase\JWT\JWT;

$payload = [
    'iss' => 'your-domain.com',
    'iat' => time(),
    'exp' => time() + 3600, // derīguma termiņš 1 stunda
    'userId' => 123
];

$jwt = JWT::encode($payload, $secretKey, 'HS256');

// Pārbaudei:
$decoded = JWT::decode($jwt, $secretKey, ['HS256']);

JWT izmantošana atvieglo lietojumprogrammu mērogošanu, jo tā neprasa sesiju glabāšanu serverī, bet ir svarīgi pareizi iestatīt tokena derīguma laiku un tā atjaunošanas pārvaldību.