Python 电子邮件身份验证和冗余激活邮件上的密码必填字段
我正在使用python social auth执行不同的社会身份验证 使用示例中提供的电子邮件身份验证时,它工作正常并发送激活邮件。但密码不是必填字段。我想做的是,在注册和通过电子邮件登录时,将密码作为必填字段 我的另一个难题是发送的冗余激活邮件。我不希望每次用户尝试使用相同的邮件注册时都发送激活邮件。如果用户在我第一次发送邮件时注册。第二次,我需要通知用户他需要激活他的帐户Python 电子邮件身份验证和冗余激活邮件上的密码必填字段,python,django,django-socialauth,Python,Django,Django Socialauth,我正在使用python social auth执行不同的社会身份验证 使用示例中提供的电子邮件身份验证时,它工作正常并发送激活邮件。但密码不是必填字段。我想做的是,在注册和通过电子邮件登录时,将密码作为必填字段 我的另一个难题是发送的冗余激活邮件。我不希望每次用户尝试使用相同的邮件注册时都发送激活邮件。如果用户在我第一次发送邮件时注册。第二次,我需要通知用户他需要激活他的帐户 提前感谢要强制执行密码,您需要一个自定义管道函数来执行检查 def password_check(strategy, u
提前感谢要强制执行密码,您需要一个自定义管道函数来执行检查
def password_check(strategy, user, response, *args, **kwargs):
if not user.verify_password(response['password']):
raise AuthFailed(strategy.backend, 'Wrong password')
对于第二个问题,您可以使用自定义行为覆盖默认的电子邮件验证管道条目。尝试密码时,会在邮件注册时调用密码检查。它引发错误“NoneType”对象没有“verify\u password”属性。请将该条目放在
的social.pipeline.user.create\u user'
之后。我这样做了,但我仍然收到相同的错误,但现在在输入激活链接之后。这并不能满足我的需要,因为它确实会发送激活邮件,即使我在注册时没有输入密码。另一件事是修改电子邮件验证机制,以便发送一次激活链接。我如何才能找到用户已经尝试过一次。除非用户被激活,否则应用程序似乎不会保存用户。看起来在创建用户时出错,这是一个自定义用户模型?但是如果问题是在创建用户时。它不会;在添加密码检查管道之前,您没有工作过。我有一个额外的userprofile模型,它与基本用户模型有一对一的关系。