Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 电子邮件身份验证和冗余激活邮件上的密码必填字段_Python_Django_Django Socialauth - Fatal编程技术网

Python 电子邮件身份验证和冗余激活邮件上的密码必填字段

Python 电子邮件身份验证和冗余激活邮件上的密码必填字段,python,django,django-socialauth,Python,Django,Django Socialauth,我正在使用python social auth执行不同的社会身份验证 使用示例中提供的电子邮件身份验证时,它工作正常并发送激活邮件。但密码不是必填字段。我想做的是,在注册和通过电子邮件登录时,将密码作为必填字段 我的另一个难题是发送的冗余激活邮件。我不希望每次用户尝试使用相同的邮件注册时都发送激活邮件。如果用户在我第一次发送邮件时注册。第二次,我需要通知用户他需要激活他的帐户 提前感谢要强制执行密码,您需要一个自定义管道函数来执行检查 def password_check(strategy, u

我正在使用python social auth执行不同的社会身份验证

使用示例中提供的电子邮件身份验证时,它工作正常并发送激活邮件。但密码不是必填字段。我想做的是,在注册和通过电子邮件登录时,将密码作为必填字段

我的另一个难题是发送的冗余激活邮件。我不希望每次用户尝试使用相同的邮件注册时都发送激活邮件。如果用户在我第一次发送邮件时注册。第二次,我需要通知用户他需要激活他的帐户


提前感谢

要强制执行密码,您需要一个自定义管道函数来执行检查

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模型,它与基本用户模型有一对一的关系。