J'ai utilisé le décorateur montré here et l'a adapté à mes besoins (rôles multiples) Le décorateur vérifie les rôles et me dit si je ne suis pas autorisé, mais il ne me redirige pas à ma page de connexion comme le décorateur original.Flask: own login_required décorateur ne pas rediriger
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
Ok ici est le décorateur d'origine du flacon-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
Lorsque je vérifie la fonction décorateur du fichier flask-login.py d'origine, aucune redirection n'est incluse. Il semble être manipulé dans la fonction non autorisée. – Kev
Alors peut-être que vous devriez poster celui-là .. doh – brunsgaard