Как организовать смену пароля пользователя при первом входе?
Многие знают принцип работы в операционных система, когда администратор системы создает пользователя, назначает ему некий пароль и указывает, что при первой авторизации сознанного пользователя в системе ему будет предложено сменить пароль на новый. Как реализовать тоже самое на сайте, созданном на Django?
Были мысли как-нибудь использовать тот факт, что при создании пользователя через админку, в базе данных поле last_login пустое. Но это только мысли. Может кто-то уже реализовывал подобное. Поделитесь опытом. Спасибо.
1. Сервис регистрации пользователя генерит новый временный пароль и шлет по почте + у этого пользователя выставляется флаг PwdChangeRequired = true.
2. Пользователь входит в систему с тем временным паролем, система знает кто вошел и проверяет флаг на true и редиректит его на форму смены пароля.
"Пользователей в системе заводит администратор системы вручную" это разве не то же самое, что и регистрация пользователей? Вопрос только в том, кому эта процедура может быть доступна: сам пользователь регит себя или же любой другой супер-пользователь системы (кому наделены такие права). Ваша проблема - дать системе понять в момент входа пользователя должен ли он сменить свой пароль. Данный флаг взведен (true):
- Если пользователь не новый, уже активно работал в системе, то это означает принудительная замена пароля в целях безопасности (или была инициирована процедура сброса пароля)
- Если пользователь новый, то само собой, нужно чтобы он указал свой пароль вместо сгенерированного.
Ребята тут предлагали <датой> воспользоваться, это тоже вариант. Реализовать можно по-разному.