Класс LoginManager
Класс LoginManager применяется для настройки аутентификации в приложении
Flask. Он предоставляет методы для загрузки пользователя из сессии, защиты
маршрутов с помощью login_required и управления состоянием входа.
Экземпляр класса создаётся один раз и связывается с приложением через
метод init_app.
Синтаксис
from flask_login import LoginManager
login_manager = LoginManager()
login_manager.init_app(app)
Пример
Давайте создадим экземпляр LoginManager и свяжем его с приложением:
from flask import Flask
from flask_login import LoginManager
app = Flask(__name__)
app.secret_key = 'secret'
login_manager = LoginManager()
login_manager.init_app(app)
Пример
Давайте определим загрузчик пользователя через декоратор user_loader:
from flask import Flask
from flask_login import LoginManager, UserMixin
app = Flask(__name__)
app.secret_key = 'secret'
login_manager = LoginManager()
login_manager.init_app(app)
class User(UserMixin):
def __init__(self, id):
self.id = id
@login_manager.user_loader
def load_user(user_id):
return User(user_id)
Пример
Давайте защитим маршрут с помощью декоратора login_required:
from flask import Flask
from flask_login import LoginManager, UserMixin, login_required
app = Flask(__name__)
app.secret_key = 'secret'
login_manager = LoginManager()
login_manager.init_app(app)
class User(UserMixin):
def __init__(self, id):
self.id = id
@login_manager.user_loader
def load_user(user_id):
return User(user_id)
@app.route('/')
@login_required
def index():
return 'hello'
При обращении к адресу / без входа пользователь будет перенаправлен
на страницу входа, заданную в атрибуте login_view.
Смотрите также
-
метод
init_app,
который связывает LoginManager с приложением -
метод
user_loader,
который регистрирует функцию загрузки пользователя -
функцию
login_user,
которая выполняет вход пользователя -
декоратор
login_required,
который защищает маршрут от анонимных пользователей