Класс AnonymousUserMixin
Класс AnonymousUserMixin применяется внутри
Flask-Login и представляет пользователя, который
не прошёл аутентификацию. Когда в сессии нет
данных о вошедшем пользователе, Flask-Login
подставляет экземпляр этого класса в
current_user. По умолчанию атрибут
is_authenticated равен False,
is_active равен False,
is_anonymous равен True,
а метод get_id возвращает None.
Синтаксис
from flask_login import AnonymousUserMixin
user = AnonymousUserMixin()
Пример
Давайте создадим экземпляр анонимного пользователя и проверим его атрибуты:
from flask_login import AnonymousUserMixin
user = AnonymousUserMixin()
print(user.is_authenticated)
print(user.is_active)
print(user.is_anonymous)
print(user.get_id())
Результат выполнения кода:
False
False
True
None
Пример
Давайте применим класс в приложении Flask вместе с Flask-Login и выведем статус пользователя в шаблоне:
from flask import Flask, render_template
from flask_login import LoginManager
app = Flask(__name__)
app.secret_key = 'abcde'
login_manager = LoginManager()
login_manager.init_app(app)
@app.route('/')
def index():
from flask_login import current_user
return render_template('index.html', user=current_user)
Шаблон для вывода статуса пользователя:
<p>Authenticated: {{ user.is_authenticated }}</p>
<p>Anonymous: {{ user.is_anonymous }}</p>
Результат выполнения кода для неавторизованного посетителя:
<p>Authenticated: False</p>
<p>Anonymous: True</p>
Пример
Давайте переопределим класс анонимного пользователя,
чтобы задать собственное значение атрибута
is_active:
from flask import Flask
from flask_login import LoginManager, AnonymousUserMixin
class MyAnonymousUser(AnonymousUserMixin):
@property
def is_active(self):
return True
app = Flask(__name__)
app.secret_key = 'abcde'
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.anonymous_user = MyAnonymousUser
@app.route('/')
def index():
from flask_login import current_user
return str(current_user.is_active)
Результат выполнения кода:
True
Смотрите также
-
класс
UserMixin,
который описывает авторизованного пользователя -
атрибут
anonymous_user,
который задаёт класс анонимного пользователя -
атрибут
is_anonymous,
который показывает, что пользователь анонимный -
метод
get_id,
который возвращает идентификатор пользователя