Junior — Middle
113
Leg uit wat een JSON Web Token is en hoe het wordt gebruikt voor autorisatie.
Bedrijven waar gevraagd werd
adspector
LuckyGroup
Antwoord van 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)