2015-07-01 4 views
1

Я бы хотел, чтобы пользователь менял свой пароль при первом входе в систему. Могу ли я сделать это с помощью системы проверки подлинности django по умолчанию?Требовать от пользователя изменения пароля при первом входе в систему?

+0

похоже: http://stackoverflow.com/questions/2093593/is-it-possible-to-implement-a-change-password-at-next-logon-type-feature-in-th – Andy

ответ

1

Короче говоря, да.

Вы должны знать, какие пользователи должны изменить свой пароль. Если вы не хотите использовать пользовательскую модель пользователя, я бы рекомендовал иметь другую модель для хранения пользователей, которым необходимо изменить свой пароль. Вы должны добавить пользователей в эту таблицу при регистрации/создании пользователя.

Тогда вы могли бы написать очень простое промежуточное программное обеспечение для проверки текущего зарегистрированного пользователя (поместите его после проверки подлинностиMiddleware в settings.py). Если пользователь отмечен как требующий изменения пароля, вы можете заставить HttpResponse (в промежуточном программном обеспечении) создать пользовательский вид с помощью параметра PasswordChangeForm (который выходит из коробки в Django, в django.contrib.auth.forms.PasswordChangeForm) после чего вы можете удалить флаг пользователю и перенаправить их на домашнюю страницу.

+0

Я могу принять простой пример того, что объясняет, использовать django 1.7, да я использую пользовательскую модель пользователя – user3328955

+0

Большое спасибо за ваш ответ, я понял все, что объяснил мне, у меня просто вопрос. Как я знаю, должен ли пользователь менять имя_? , например, с атрибутом bool? И _ default верно? – user3328955

+0

Если вы используете пользовательскую модель пользователя, вам нужен только BooleanField для сохранения необходимости изменения пароля. Такая же логика, как объяснялось ранее, но только с одной моделью. 'user_must_change_password = models.BooleanField (..., default = True)' –

Смежные вопросы