Sobes.tech
Назад к вопросам
Junior — Middle
83

Объясните, что такое JSON Web Token, и как оно используется для авторизации?

Компании, где спрашивали
adspector
LuckyGroup

Ответ от нейросети

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)