Flask.Login — это библиотека для добавления аутентификации пользователей и управления сеансами в приложения Flask. Он предоставляет низкоуровневый API для управления данными аутентификации и сеанса, позволяя разработчикам сосредоточиться на более интересных частях своих приложений.

Библиотека проста и легка, но достаточно мощна для решения сложных задач аутентификации.

В этом руководстве будут рассмотрены основы Flask.Login и способы его использования в приложении Flask. Мы рассмотрим, как настроить аутентификацию пользователей, создать сеансы и обрабатывать входы и выходы. Попутно мы также увидим, как защитить определенные страницы от неавторизованных пользователей.

Начало работы

Первым шагом в использовании Flask.Login является его установка. Flask.Login можно установить с помощью pip, менеджера пакетов Python. Для этого используйте следующую команду:

pip install flask-login

После установки Flask.Login можно импортировать в приложение с помощью следующего кода:

from flask_login import LoginManager

Класс LoginManager является основным классом библиотеки и используется для управления данными аутентификации пользователя и сеанса.

Аутентификация пользователя

После импорта класса LoginManager следующим шагом будет настройка системы аутентификации. Это делается путем настройки функции пользовательского загрузчика. Эта функция будет отвечать за загрузку данных пользователя из базы данных. Чтобы настроить загрузчик пользователей, используйте следующий код:

@login_manager.user_loader
def load_user(user_id):
 return User.query.get(user_id)

В этом примере загрузчик пользователей ищет пользователя в базе данных, используя его идентификатор. Подробная информация о том, как хранить и извлекать пользовательские данные в базе данных, выходит за рамки этого руководства.

После настройки загрузчика пользователей можно инициализировать систему аутентификации. Для этого используйте следующий код:

login_manager.init_app(app)

Метод init_app() инициализирует систему аутентификации и настраивает загрузчик пользователей. Он также устанавливает необходимые маршруты и представления для обработки входов и выходов.

Создание сеансов

После настройки системы аутентификации следующим шагом будет создание сеансов. Flask.Login предоставляет простой интерфейс для создания сессий. Чтобы создать сеанс, используйте следующий код:

@login_required
def create_session():
 login_user(user)

Функция login_user() принимает объект пользователя в качестве аргумента и создает сеанс для пользователя. Объект пользователя должен содержать уникальный идентификатор, который можно использовать для поиска пользователя в загрузчике пользователей.

Обработка входов и выходов

После настройки системы аутентификации и создания сеансов следующим шагом будет обработка входов и выходов. Входы в систему обрабатываются системой аутентификации, а выходы — приложением.

Чтобы выйти из системы, используйте следующий код:

@login_required
def logout():
 logout_user()

Функция logout_user() выводит пользователя из сеанса и перенаправляет его на страницу входа.

Защита страниц

После настройки системы аутентификации ее можно использовать для защиты определенных страниц от неавторизованных пользователей. Flask.Login предоставляет декоратор для защиты представлений. Чтобы использовать его, используйте следующий код:

@login_required
def protected_page():
 # page code goes here

Декоратор login_required проверяет, вошел ли пользователь в систему, прежде чем разрешить доступ к представлению. Если пользователь не авторизован, он будет перенаправлен на страницу авторизации.

В этом руководстве мы увидели, как использовать Flask.Login для добавления аутентификации пользователей и управления сеансами в приложение Flask. Мы увидели, как настраивать систему аутентификации, создавать сеансы, обрабатывать входы и выходы, а также защищать страницы от неавторизованных пользователей. С Flask.Login добавить аутентификацию пользователя в приложение Flask легко и просто.

Ссылки:

1. https://flask-login.readthedocs.io/en/latest/
2. https://flask.palletsprojects.com/en/1.1.x/
3. https://www.fullstackpython.com/flask.html

Если вам понравилась эта статья, рассмотрите возможность использования моей партнерской ссылки, чтобы стать участником Medium сегодня https://medium.com/@alains/membership. Всего за 5 долларов в месяц (и никаких дополнительных затрат с вашей стороны) вы получите неограниченный доступ к богатой библиотеке статей Medium.



Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .