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

Атрибут is_authenticated

Атрибут is_authenticated применяется к классу UserMixin из модуля flask_login. Он возвращает булево значение True, если пользователь успешно вошёл в систему через функцию login_user, и False в противном случае. Flask-Login использует этот атрибут для проверки доступа к защищённым маршрутам. Атрибут не принимает параметров и доступен как свойство экземпляра класса пользователя.

Синтаксис

user.is_authenticated

Пример

Давайте создадим класс пользователя на основе UserMixin и проверим значение атрибута is_authenticated:

from flask import Flask from flask_login import UserMixin app = Flask(__name__) app.secret_key = 'abcde' class User(UserMixin): def __init__(self, id): self.id = id user = User(1) @app.route('/') def index(): return str(user.is_authenticated)

Результат выполнения кода для неаутентифицированного пользователя:

False

Пример

Давайте аутентифицируем пользователя через функцию login_user и снова проверим атрибут:

from flask import Flask from flask_login import UserMixin, login_user, LoginManager app = Flask(__name__) app.secret_key = 'abcde' login_manager = LoginManager() login_manager.init_app(app) class User(UserMixin): def __init__(self, id): self.id = id user = User(1) @app.route('/') def index(): login_user(user) return str(user.is_authenticated)

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

True

Пример

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

from flask import Flask from flask_login import UserMixin, login_user, LoginManager app = Flask(__name__) app.secret_key = 'abcde' login_manager = LoginManager() login_manager.init_app(app) class User(UserMixin): def __init__(self, id): self.id = id user = User(1) @app.route('/login') def login(): login_user(user) return 'user logged in' @app.route('/profile') def profile(): if not user.is_authenticated: return 'access denied' return 'user profile'

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

"access denied"

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

  • класс UserMixin,
    который добавляет стандартные методы пользователя
  • атрибут is_active,
    который проверяет активность пользователя
  • атрибут is_anonymous,
    который определяет анонимного пользователя
  • функцию login_user,
    которая выполняет вход пользователя в систему
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить