Атрибут 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,
которая выполняет вход пользователя в систему