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 состоит из трёх частей, разделённых точками:
- 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)