Skip to content

Introduction to Flask-Login

Flask-Login is the standard extension for login/session management.

It helps you:

  • log users in and out
  • remember users across requests
  • access current_usercurrent_user
  • protect routes with @login_required@login_required

Install

pip install Flask-Login
pip install Flask-Login

Minimal setup

from flask import Flask
from flask_login import LoginManager
 
app = Flask(__name__)
app.config["SECRET_KEY"] = "dev-key"
 
login_manager = LoginManager()
login_manager.init_app(app)
 
# where to redirect when login is required
login_manager.login_view = "login"
from flask import Flask
from flask_login import LoginManager
 
app = Flask(__name__)
app.config["SECRET_KEY"] = "dev-key"
 
login_manager = LoginManager()
login_manager.init_app(app)
 
# where to redirect when login is required
login_manager.login_view = "login"

User model requirement

Your user model must implement:

  • is_authenticatedis_authenticated
  • is_activeis_active
  • is_anonymousis_anonymous
  • get_id()get_id()

The easiest way is to inherit:

from flask_login import UserMixin
 
class User(UserMixin, db.Model):
    ...
from flask_login import UserMixin
 
class User(UserMixin, db.Model):
    ...

current_user

Flask-Login provides:

from flask_login import current_user
from flask_login import current_user

current_usercurrent_user represents the user for the current request.

If not logged in, it’s an AnonymousUser object.

If this helped you, consider buying me a coffee β˜•

Buy me a coffee

Was this page helpful?

Let us know how we did