Как происходит клиент серверное взаимодействие с JWT

Python Senior Без компании
Как происходит клиент серверное взаимодействие с JWT
Ответы
Клиент-серверное взаимодействие с JWT (JSON Web Token) происходит следующим образом: - **Аутентификация**: Клиент отправляет логин/пароль на сервер. Сервер проверяет их и генерирует JWT, подписывая его секретным ключом. - **Передача токена**: Сервер возвращает JWT клиенту (обычно в теле ответа или в заголовке). - **Последующие запросы**: Клиент включает JWT в заголовок `Authorization: Bearer <token>` при каждом запросе. - **Верификация**: Сервер проверяет подпись токена, его срок действия и другие claims перед обработкой запроса. Пример кода (Flask): ``` from flask import Flask, request, jsonify import jwt import datetime app = Flask(__name__) SECRET_KEY = "your_secret_key" @app.route('/login', methods=['POST']) def login(): # Проверка учетных данных token = jwt.encode({ 'user': 'username', 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=30) }, SECRET_KEY) return jsonify({'token': token}) @app.route('/protected', methods=['GET']) def protected(): token = request.headers.get('Authorization').split()[1] try: data = jwt.decode(token, SECRET_KEY, algorithms=["HS256"]) return jsonify({'message': 'Доступ разрешен'}) except: return jsonify({'message': 'Неверный токен'}), 401 ``` JWT состоит из 3 частей (Header.Payload.Signature), закодированных в Base64. Основные преимущества: stateless, поддержка разных платформ, возможность передачи дополнительных данных в payload.