Атрибут refresh_view
Атрибут refresh_view применяется к объекту
LoginManager и хранит имя функции-обработчика,
который вызывается, когда сессия пользователя устарела
и требуется повторный вход. Значением атрибута
выступает строка с именем представления, зарегистрированного
в приложении Flask. Если атрибут не задан, Flask-Login
перенаправляет пользователя на представление из
login_view. Атрибут удобно применять вместе
с защитой маршрутов через fresh_login_required,
чтобы отличать обычный вход от повторного подтверждения.
Синтаксис
login_manager.refresh_view = 'name'
Пример
Давайте создадим приложение Flask, настроим
LoginManager и укажем атрибут refresh_view
с именем функции refresh:
from flask import Flask, render_template
from flask_login import LoginManager, login_required, fresh_login_required
app = Flask(__name__)
app.secret_key = 'secret'
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'login'
login_manager.refresh_view = 'refresh'
@app.route('/')
@login_required
def index():
return render_template('index.html')
@app.route('/login')
def login():
return render_template('login.html')
@app.route('/refresh')
def refresh():
return render_template('refresh.html')
@app.route('/settings')
@fresh_login_required
def settings():
return render_template('settings.html')
Теперь создадим шаблоны для каждой страницы:
<p>index page</p>
<p>login page</p>
<p>refresh page</p>
<p>settings page</p>
Если пользователь откроет адрес /settings
с устаревшей сессией, Flask-Login перенаправит его
на представление refresh, а не на login.
Результат выполнения кода:
<p>refresh page</p>
Пример
Давайте проверим, что атрибут refresh_view
доступен для чтения и хранит переданное значение:
from flask import Flask
from flask_login import LoginManager
app = Flask(__name__)
app.secret_key = 'secret'
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.refresh_view = 'refresh'
@app.route('/')
def index():
return login_manager.refresh_view
Результат выполнения кода:
"refresh"
Смотрите также
-
атрибут
login_view,
который задаёт представление для входа -
функцию
fresh_login_required,
которая требует свежую сессию -
атрибут
needs_refresh_message,
который задаёт сообщение при необходимости обновления -
метод
needs_refresh_handler,
который обрабатывает запрос на обновление сессии