Я не могу найти способ установить токен JWT в качестве заголовка в каждом HTTP-запросе без помощи Javascript.
В настоящее время мое приложение настроено на использование методов set_access_cookies и unset_access_cookies для отслеживания сеанса. Однако простая деактивация файла cookie не делает его недействительным. Поэтому я хотел бы использовать JWT в заголовке, чтобы я мог использовать метод blacklist.add (), поскольку blacklist.add (), похоже, не может просматривать файлы cookie из моего тестирования.
Моя функция входа в систему:
@app.route('/v1/login', methods=['POST', 'GET'])
def auth_user():
''' auth endpoint '''
if request.method == 'POST':
data = validate_user(request.get_json())
if data['ok']:
data = data['data']
user = mongo.db.users.find_one({'email': data['email']}, {"_id": 0})
if user and flask_bcrypt.check_password_hash(user['password'], data['password']):
access_token = create_access_token(identity=data)
refresh_token = create_refresh_token(identity=data)
resp = make_response(render_template('index.html'), 302)
set_access_cookies(resp, access_token)
return resp
else:
return jsonify({'ok': False, 'message': 'invalid username or password'}), 200
else:
return jsonify({'ok': False, 'message': 'invalid username or password'}), 200
elif request.method == 'GET':
return render_template('/api/v1/login.html')
Моя функция выхода:
@app.route('/v1/logout', methods=['POST'])
def logout():
''' logout user endpoint '''
resp = jsonify({'logout': True})
unset_jwt_cookies(resp)
return resp, 200
Это отлично работает, но есть ли простой способ вместо этого разместить JWT в качестве постоянного заголовка?