我使用了这里显示的 te 装饰器并根据我的需要对其进行了调整(多个角色) 装饰器检查角色并告诉我是否未获得授权,但它不会像原始装饰器那样将我重定向到我的登录页面。
def login_required(role="ANY"):
def wrapper(fn):
@wraps(fn)
def decorated_view(*args, **kwargs):
if not current_user.is_authenticated():
return lm.unauthorized()
if ((role not in current_user.roles) and (role != "ANY")):
return lm.unauthorized()
return fn(*args, **kwargs)
return decorated_view
return wrapper
好的,这是来自烧瓶登录的原始装饰器:
def login_required(func):
@wraps(func)
def decorated_view(*args, **kwargs):
if current_app.login_manager._login_disabled:
return func(*args, **kwargs)
elif not current_user.is_authenticated():
return current_app.login_manager.unauthorized()
return func(*args, **kwargs)
return decorated_view