Back to questions
Junior — Middle
82
Объясните, что такое JSON Web Token, и как оно используется для авторизации?
Companies where asked
adspector
LuckyGroup
Answer from AI
sobes.tech AI
JSON Web Token (JWT) — это компактный, URL-безопасный способ передачи информации между сторонами в виде JSON-объекта. JWT часто используется для авторизации и аутентификации.
JWT состоит из трёх частей, разделённых точками:
- Header (заголовок) — содержит тип токена и алгоритм подписи.
- Payload (полезная нагрузка) — содержит утверждения (claims), например, идентификатор пользователя и время истечения токена.
- 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)