Функция confirm_login
Функция confirm_login применяется к объекту
LoginManager из расширения Flask-Login. Она
подтверждает вход текущего пользователя, помечая
сессию как свежую и продлевая время её жизни.
Функция не принимает параметров и возвращает
None. Обычно она вызывается внутри
представления, например в обработчике формы входа,
когда пользователь только что прошёл аутентификацию.
В отличие от функции login_user, которая
непосредственно выполняет вход пользователя,
confirm_login лишь обновляет уже
существующую сессию, делая её свежей и сбрасывая
таймер её истечения. Это полезно, например, при
повторной аутентификации без выхода из системы.
Синтаксис
login_manager.confirm_login()
Пример
Давайте создадим приложение Flask с Flask-Login и
вызовем confirm_login после успешной
проверки пароля:
from flask import Flask, request
from flask_login import LoginManager, UserMixin, login_user, confirm_login
app = Flask(__name__)
app.secret_key = 'secret'
login_manager = LoginManager(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', methods=['POST'])
def login():
user = User('abcde')
login_user(user)
confirm_login()
return 'logged in'
Результат выполнения кода после отправки POST-запроса:
"logged in"
Пример
Давайте рассмотрим сценарий повторной
аутентификации, когда пользователь уже вошёл в
систему, но срок сессии подходит к концу. Вызов
confirm_login продлит сессию:
from flask import Flask
from flask_login import LoginManager, UserMixin, login_user, confirm_login
app = Flask(__name__)
app.secret_key = 'secret'
login_manager = LoginManager(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('/reauth')
def reauth():
user = User('user')
login_user(user)
confirm_login()
return 'session confirmed'
Результат выполнения кода для адреса /reauth:
"session confirmed"
Смотрите также
-
функцию
login_user,
которая выполняет вход пользователя в систему -
функцию
logout_user,
которая выполняет выход пользователя из системы -
функцию
login_fresh,
которая проверяет, является ли сессия свежей -
атрибут
session_protection,
который управляет защитой сессии