login_required decorator no funciona, flask-login permite usuarios anónimos

login_required un método con login_required , pero me sorprende que no se ejecute en absoluto, lo que permite usuarios anónimos. Imprimir el current_user dentro del método devuelve esto:

  

¿No se supone que rechace usuarios que devuelven false en user.is_autheticated() ? ¿Qué hice mal?


He configurado FL de esta manera:

 lm = LoginManager(app) lm.login_view = 'root' 

en views.py:

 @lm.user_loader def load_user(id): return User.query.get(int(id)) 

la vista actual:

 @login_required @app.route("/messages") def messages(): print "current user", current_user return "hello world" 

Todo se ve bien, lo que probablemente significa que el problema está en otra parte.

¿Cuál es la configuración que está utilizando? Si LOGIN_DISABLED o LOGIN_DISABLED se establece en true, la autenticación se desactiva.

Si su configuración está bien, establezca un punto de interrupción dentro del decorador login_required y verifique por qué permite la entrada del usuario anónimo.

La serendipia me dio esto :

Cuando aplique decoradores adicionales, recuerde siempre que el decorador route () es el más externo:

Lo escribí de manera incorrecta (ruta no la más externa).


PDB puede ejecutar su método sospechoso en modo de depuración, para inspeccionar el estado local.

Flask-Login está presente en GitHub de todos modos y la fuente de login_required es bastante simple de entender.