From the Flask-Login docs, it's described how a user of the system can require an authenticated User-model to access a method utilising the decorator syntax:
from flask_login import login_required
@app.route("/settings")
@login_required
def settings():
pass
Now thats all well and good, but I want to be able to examine if the user is logged in a method, something like this:
@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
...
The reason for this, is because it factorises the GET and POST requests rather than duplicating routes for authenticated users and unauthenticated users.
How can I do this? Is it possible?
This is very simple in flask:
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")