Sobes.tech
Junior — Middle
128

Explicați ce este un JSON Web Token și cum este utilizat pentru autorizare.

Companiile au fost întrebate
adspector
LuckyGroup

Răspuns de la AI

sobes.tech AI

JSON Web Token (JWT) — это компактный, URL-безопасный способ передачи информации между сторонами в виде JSON-объекта. JWT часто используется для авторизации и аутентификации.

JWT состоит из трёх частей, разделённых точками:

  1. Header (заголовок) — содержит тип токена и алгоритм подписи.
  2. Payload (полезная нагрузка) — содержит утверждения (claims), например, идентификатор пользователя и время истечения токена.
  3. Signature (подпись) — создаётся на основе header и payload с использованием секретного ключа.

При авторизации сервер выдаёт JWT клиенту после успешного входа. Клиент сохраняет токен и отправляет его в заголовке Authorization при последующих запросах. Сервер проверяет подпись и данные токена, чтобы удостовериться в подлинности и правах пользователя.

Пример создания JWT на Python с библиотекой PyJWT:

import jwt
import datetime

secret = 'my_secret_key'
payload = {
    'user_id': 123,
    'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1)
}
token = jwt.encode(payload, secret, algorithm='HS256')
print(token)