Атрибут session_protection
Атрибут session_protection применяется к объекту LoginManager
для настройки режима защиты сессии. Он определяет, какие действия
предпринимает Flask-Login при обнаружении несоответствия между
идентификатором пользователя в сессии и параметрами запроса.
Значением атрибута может быть строка 'basic' или 'strong',
либо None для полного отключения защиты.
При значении 'basic' Flask-Login проверяет соответствие
идентификатора сессии и IP-адреса клиента. Если данные не совпадают,
сессия помечается как непостоянная, но пользователь не разлогинивается.
При значении 'strong' дополнительно проверяется
User-Agent, и при несовпадении пользователь принудительно
выходит из системы. По умолчанию атрибут имеет значение 'basic'.
Синтаксис
login_manager.session_protection = 'basic'
Пример
Давайте настроим LoginManager с базовой защитой сессии:
from flask import Flask
from flask_login import LoginManager
app = Flask(__name__)
app.secret_key = 'abcde'
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.session_protection = 'basic'
Теперь при несовпадении IP-адреса сессия будет помечена как непостоянная.
Пример
Давайте включим строгую защиту сессии:
from flask import Flask
from flask_login import LoginManager
app = Flask(__name__)
app.secret_key = 'abcde'
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.session_protection = 'strong'
Теперь при несовпадении IP-адреса или User-Agent пользователь будет автоматически разлогинен.
Пример
Давайте полностью отключим защиту сессии:
from flask import Flask
from flask_login import LoginManager
app = Flask(__name__)
app.secret_key = 'abcde'
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.session_protection = None
Теперь Flask-Login не будет проверять сессию на подмену.
Смотрите также
-
класс
LoginManager,
который управляет аутентификацией в приложении -
метод
init_app,
который инициализирует LoginManager для приложения -
метод
user_loader,
который загружает пользователя по идентификатору -
атрибут
anonymous_user,
который задаёт анонимного пользователя