python - example - flask session
Flask-Login comprobar si el usuario está autenticado sin decorador (2)
Esto es muy simple en matraz:
from flask_login import current_user
@app.route(...)
def main_route():
if current_user.is_authenticated:
return render_template("main_for_user.html")
else:
return render_template("main_for_anonymous.html")
Consulte la documentación sobre usuarios anónimos .
De los documentos de inicio de sesión de Flask, se describe cómo un usuario del sistema puede requerir un modelo de usuario autenticado para acceder a un método que utiliza la sintaxis decoradora:
from flask_login import login_required
@app.route("/settings")
@login_required
def settings():
pass
Ahora eso está muy bien, pero quiero poder examinar si el usuario está registrado en un método, algo como esto:
@app.route(''/main/'', methods=[''GET'', ''POST''])
main_route():
if request.method == ''GET'':
if user_is_authenticated(): #Do the authentication here
#load authenticated /main/ html template etc.
pass
else:
#load unauthenticated /main/ html template etc.
pass
...
La razón de esto es que factoriza las solicitudes GET y POST en lugar de duplicar rutas para usuarios autenticados y usuarios no autenticados.
¿Cómo puedo hacer esto? ¿Es posible?
Puede referirse al ejemplo here .
Cuando el usuario haya iniciado sesión, configure la session[''logged_in'']=True
. Al mismo tiempo, puede usar la API de inicio de sesión de Flask para hacer algunas configuraciones en caso de que quiera usar su funcionalidad.
Cuando desee verificar si el usuario ha iniciado sesión manualmente en lugar de utilizar la API de inicio de sesión de Flask, verifique el valor de la session[''logged_in'']
.