2013-11-10 3 views
1

Я использую python social auth для выполнения различной социальной аутентификации.Поле для ввода пароля по электронной почте auth и redundant mail для активации

При использовании аутентификации электронной почты, представленной в примере, он отлично работает и отправляет письмо активации. Но пароль не является обязательным. Что я хочу сделать, так это при регистрации и входе в систему по электронной почте, чтобы пароль был обязательным.

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

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

ответ

0

Для обеспечения соблюдения пароля вам необходимо пользовательская функция трубопровода, чтобы сделать чек

def password_check(strategy, user, response, *args, **kwargs): 
    if not user.verify_password(response['password']): 
     raise AuthFailed(strategy.backend, 'Wrong password') 

Для второй задачи, вы можете изменить запись трубопровода электронной почты-проверку по умолчанию с пользовательским поведением ,

+0

при попытке пароля_выписка вызывается при регистрации по почте. Он вызывает ошибку. Объект «NoneType» не имеет атрибута «verify_password». –

+0

Поместите запись после ''social.pipeline.user.create_user''. – omab

+1

Я сделал это, но я все равно получаю ту же ошибку, но теперь после ввода активирующей ссылки. который не удовлетворяет мою потребность в первую очередь, потому что он отправляет почту активации, даже если я не вводил пароль при регистрации. Еще одна вещь, чтобы изменить механизм проверки электронной почты, чтобы отправить ссылку активации один раз. Как я могу найти пользователя, который уже пробовал один раз. Приложение, похоже, не сохраняет пользователя, если он не активирован. –