我使用了显示here的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
好的,这是来自flask-login的原始装饰者:
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
答案 0 :(得分:0)
你的代码说什么都不算什么,这是一种耻辱,在所有情况下它只是运行lm.unauthorized()
,但你为什么不使用redirect?希望它有点帮助;)
答案 1 :(得分:0)
抱歉,重定向工作正常 - 这只是我的view.py中的一个问题。
我希望你至少会发现我的角色适应有点帮助!