РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
419 of 643 menu

Метод needs_refresh_handler

Метод needs_refresh_handler применяется к объекту LoginManager и регистрирует функцию, которая будет вызвана, когда Flask-Login обнаружит, что сессия пользователя устарела и требует повторной аутентификации. Это происходит при включённой защите сессии session_protection со значением 'strong' или 'basic'. Первым параметром метод принимает функцию-обработчик, вторым необязательным параметром - флаг refresh. Если флаг равен True, обработчик будет вызван не только при необходимости обновления, но и при каждом запросе. По умолчанию refresh равен False.

Синтаксис

login_manager.needs_refresh_handler(func, [refresh])

Пример

Давайте зарегистрируем простой обработчик, который возвращает сообщение о необходимости обновления сессии:

from flask import Flask from flask_login import LoginManager app = Flask(__name__) app.secret_key = 'secret' login_manager = LoginManager(app) @login_manager.needs_refresh_handler def needs_refresh(): return 'Session needs refresh'

Результат выполнения кода при срабатывании обработчика:

<+html+> Session needs refresh <-html+>

Пример

Давайте включим защиту сессии и зададим обработчик, который перенаправляет пользователя на страницу входа:

from flask import Flask, redirect, url_for from flask_login import LoginManager app = Flask(__name__) app.secret_key = 'secret' login_manager = LoginManager(app) login_manager.session_protection = 'strong' @login_manager.needs_refresh_handler def needs_refresh(): return redirect(url_for('login')) @app.route('/login') def login(): return 'Login page'

Результат выполнения кода при срабатывании обработчика - перенаправление на адрес /login:

<+html+> Login page <-html+>

Пример

Давайте передадим параметр refresh равным True, чтобы обработчик вызывался при каждом запросе:

from flask import Flask from flask_login import LoginManager app = Flask(__name__) app.secret_key = 'secret' login_manager = LoginManager(app) @login_manager.needs_refresh_handler(refresh=True) def needs_refresh(): return 'Check session every request'

Результат выполнения кода при каждом запросе:

<+html+> Check session every request <-html+>

Смотрите также

  • класс LoginManager,
    который управляет аутентификацией
  • атрибут session_protection,
    который задаёт режим защиты сессии
  • метод unauthorized_handler,
    который обрабатывает неавторизованный доступ
  • метод user_loader,
    который загружает пользователя по идентификатору
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить