2016-03-05 6 views
-1

В документации is_authenticated определяется какЧто делает флажок-логин is_authenticated и is_anonymous?

«is_authenticated:. Возвращает True, если пользователь был идентифицирован, то есть они предоставили действительные учетные данные»

Однако, я не понимаю, когда этот метод называется и какова его точка, то же самое для is_anonymous. В этом примере оба они возвращают True и False соответственно. Что они делают?

Заранее спасибо.

Редактировать: это не дубликат, так как поток «duplicate» не отвечает на вопрос, который я задал.

ответ

1

Я не famliar с Lib, но после того, как быстро проверить исходный код:
Есть два класса: UserMixin и AnonymousUserMixin. Для UserMixinis_authenticated является True и is_anonymous является False, а в противоположном для Anonymous.

Итак, когда вы открываете приложение и не идентифицировать себя (текущий сеанс не имеет user_id, колбовые Войти набор пользователей для анонимного пользователя (создает экземпляр AnonymousUserMixin), в противном случае он создает экземпляр UserMixin (I дона «т думает, что эти классы должны называться mixins, но не имеет значения).

Короче говоря, зависит от подлинности вас или нет, user объекта, созданной колбы-логин будет инстанс из класса с соответствующими значениями is_authenticated и is_anonymous.

1

Если вы используете b ase Пользовательский класс предоставляется из колбы. Эти методы полезны для написания декоратора, который обрабатывает страницы «admin», в которые должен войти человек. вызов user.is_anonymous даст вам знать, что человек в настоящее время не зарегистрирован, и если они пытаются получить доступ к странице, требующей входа в систему, то ваш декоратор может вернуть запрещенное сообщение или перенаправить на страницу входа в систему.

Вызов user.is_authenticated даст вам знать, если пользователь ввел успешный пароль и в настоящее время зарегистрирован на вашем веб-сайте.

Кроме того, пользователь всегда анонимен (экземпляр класса AnonymousUser) при первой загрузке страницы в вашем приложении, а затем, когда вы загружаете пользователя из базы данных, пользователь представляет собой экземпляр класса User. Однако на этом этапе они все еще не аутентифицированы. Это не до тех пор, пока вы не выполните login_user (пользователь), чтобы пользователь считался аутентифицированным.

Это также ответил here

+0

Когда вы говорите «пользователь всегда анонимны на первой загрузке страницы», вы имеете в виду «первый», как в никогда не побывав до этого? –

+0

Да. Когда это новый сеанс –