Пример кода на Python с использованием библиотеки Flask для реализации аутентификации с помощью JWT:
В этом примере, при запросе на
from flask import Flask, jsonify, request
import jwt
from functools import wraps
app = Flask(name)
app.config['SECRET_KEY'] = 'secret'
def token_required(f):
@wraps(f)
def decorated(*args, **kwargs):
token = request.headers.get('Authorization')
if not token:
return jsonify({'message': 'Token is missing!'}), 401
try:
data = jwt.decode(token, app.config['SECRET_KEY'])
except:
return jsonify({'message': 'Token is invalid!'}), 401
return f(*args, **kwargs)
return decorated
@app.route('/login', methods=['POST'])
def login():
auth = request.authorization
if auth and auth.password == 'password':
token = jwt.encode({'username': auth.username}, app.config['SECRET_KEY'])
return jsonify({'token': token.decode('UTF-8')})
return jsonify({'message': 'Could not verify!'}), 401
@app.route('/protected', methods=['GET'])
@token_required
def protected():
return jsonify({'message': 'This is protected route!'})
if name == 'main':
app.run(debug=True)
В этом примере, при запросе на
/login
пользователь предоставляет учетные данные и, если они верны, сервер создает JWT токен, который включает в себя имя пользователя. После этого, для доступа к защищенному маршруту /protected
, клиент должен предоставить этот токен в заголовке Authorization
. Функция token_required
обеспечивает аутентификацию пользователя на основе JWT токена.