Получение RuntimeError: вы должны вызвать `@jwt_required()` при реализации управления доступом на основе ролей в колбе сPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Получение RuntimeError: вы должны вызвать `@jwt_required()` при реализации управления доступом на основе ролей в колбе с

Сообщение Anonymous »

Я пытаюсь реализовать в своем коде управление доступом на основе ролей. Я создал таблицу ролей и добавил в нее несколько ролей.
Используя пару руководств YouTube и документацию, я получил следующий код:
decorators.py:

Код: Выделить всё

from functools import wraps
from flask import make_response
from flask_jwt_extended import get_current_user

def auth_role(role):
def wrapper(fn):
@wraps(fn)
def decorator(*args, **kwargs):
current_user = get_current_user()
roles = role if isinstance(role, list) else [role]
if all(not current_user.has_role(r) for r in roles):
return make_response({"msg": f"Missing any of the following roles {':'.join(roles)}"}, 403)
return fn(*args, **kwargs)
return decorator
return wrapper
routes.py:

Код: Выделить всё

@app.route('/test')
@auth_role("admin")
@jwt_required
def test():
return "Hello"
init.py:

Код: Выделить всё

app = Flask(__name__)
app.config.from_object(Config)
jwt = JWTManager(app)
Все было импортировано правильно.
Однако всякий раз, когда я пытаюсь перейти на «localhost:5000/test», я получаю следующую ошибку:
Ошибка выполнения: перед использованием этого метода необходимо вызвать @jwt_required() илиverify_jwt_in_request()
Кто-нибудь знает, как решить эту проблему?< /п>

Подробнее здесь: https://stackoverflow.com/questions/786 ... g-role-bas
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»