Функция login_user
Функция login_user применяется для аутентификации
пользователя в приложении Flask. Первым параметром
передаётся объект пользователя, который должен
реализовывать интерфейс UserMixin. После вызова
Flask-Login сохраняет идентификатор пользователя
в сессии и делает его доступным через current_user.
Вторым необязательным параметром remember можно
включить режим «запомнить меня», а параметром
duration - задать время жизни такой сессии.
Функция возвращает True, если вход выполнен успешно.
Синтаксис
login_user(user, remember=False, duration=None, force=False, fresh=True)
Пример
Давайте создадим простое приложение с формой входа,
использующее login_user:
from flask import Flask, request, redirect, url_for
from flask_login import LoginManager, UserMixin, login_user
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', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
user = User(request.form['username'])
login_user(user)
return redirect(url_for('index'))
return 'login form'
@app.route('/')
def index():
return 'hello'
После отправки формы пользователь будет аутентифицирован и перенаправлен на главную страницу.
Пример
Давайте включим режим «запомнить меня», чтобы сессия сохранялась между визитами:
from flask import Flask, request
from flask_login import LoginManager, UserMixin, login_user
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', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
user = User(request.form['username'])
res = login_user(user, remember=True)
return str(res)
return 'login form'
Результат выполнения кода после успешного входа:
"True"
Смотрите также
-
функцию
logout_user,
которая выполняет выход пользователя из системы -
метод
user_loader,
который регистрирует функцию загрузки пользователя -
класс
UserMixin,
который предоставляет базовый интерфейс пользователя -
функцию
login_required,
которая ограничивает доступ к маршруту