Sobes.tech
Junior — Middle

Жоболордо JSON Web Tokens колдонуу боюнча тажрыйбаңыз менен бөлүшө аласызбы?

sobes.tech AI

AIден жооп

PHP долбоорлорунда мен колдонуучулардын аутентификациясы жана уруксат берүү үчүн JSON Web Tokens (JWT) колдонуп келгем. JWT колдонуучу жөнүндө маалыматты шифрленген түрдө кардар жана сервер ортосунда өткөрүүгө мүмкүндүк берет жана серверде сессия сактоого муктаждык жоготот.

JWT колдонуу негизги кадамдары:

  1. Ийгиликтүү аутентификациядан кийин, колдонуучу JWT алат, ал жүктөмдү камтыйт (мисалы, колдонуучу ID, ролдор).
  2. Токен жасалма кылуудан коргоо үчүн сырдуу ачкыч менен кол коюлат.
  3. Кардар токенди (мисалы, localStorageда) сактайт жана кийинки суроолордо Authorization башталышында жиберет.
  4. Сервер токендин кол коюусун текшерет жана кирүү укуктарын аныктоо үчүн маалыматтарды чыгарат.

firebase/php-jwt китепканасы аркылуу JWT түзүү мисалы:

use Firebase\JWT\JWT;

$payload = [
    'iss' => 'your-domain.com',
    'iat' => time(),
    'exp' => time() + 3600, // 1 саат мөөнөтү
    'userId' => 123
];

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

// Текшерүү үчүн:
$decoded = JWT::decode($jwt, $secretKey, ['HS256']);

JWT колдонуу колдонмолорду масштабдоо оңой, анткени ал серверде сессияларды сактоону талап кылбайт, бирок токендин мөөнөтүн туура орнотуу жана анын жаңыртылышын башкаруу маанилүү.