LoginManager
Setup
from flask_login import LoginManager`
login_manager = LoginManager()
login_manager.init_app(app)
@login_manager.user_loader
def load_user(user_id):
user = db_get_user(user_id)
if not user:
print("Invalid user id in request. Has this user id been deleted?")
# returning None deletes the session
return None
print("LOAD USER", user.get_id())
return user
User object should implement some functions or inherit from UserMixin
Usage
Make Login Required For Routes
@login_required
decorator will make route reroute to route set by login_manager.login_view = "users.login"
Login
from flask_login import login_user`
login_user(user)
login_user(user, remember=True)#store cookie to remember me
Logout
@app.route("/logout")
@login_required
def logout():
logout_user()
return redirect(somewhere)
Use current_user to access
@bp.route("/me", methods=["POST"])
def guess_user():
if current_user.is_authenticated:
return jsonify(current_user.as_dict())
Templates
Make current_user available in every template
<div data-gb-custom-block data-tag="if">
Hi {{ current_user.name }}!
</div>
Last updated