Пример кода на 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 токена.