Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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/9/security/4.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
Django-具有电子邮件域且无密码的身份验证用户_Django_Security_Authentication - Fatal编程技术网

Django-具有电子邮件域且无密码的身份验证用户

Django-具有电子邮件域且无密码的身份验证用户,django,security,authentication,Django,Security,Authentication,我有一个请求,修改电子邮件和密码的标准Django登录,允许任何用户无需密码登录,但前提是他们在某个域上。。。例如somebody@example.com ... 由于用户位于正确的域中,因此允许其进入 有什么建议吗?如果您的用户有带有电子邮件的openidsomebody@example.com然后您可以使用解决方案(例如,还有其他解决方案)验证他的身份并允许他访问 如果不太可能,那么您需要找到一种自定义方法来确保用户是他声称的用户 如果您的用户有带有电子邮件的openidsomebody@e

我有一个请求,修改电子邮件和密码的标准Django登录,允许任何用户无需密码登录,但前提是他们在某个域上。。。例如somebody@example.com ... 由于用户位于正确的域中,因此允许其进入

有什么建议吗?

如果您的用户有带有电子邮件的openid
somebody@example.com
然后您可以使用解决方案(例如,还有其他解决方案)验证他的身份并允许他访问

如果不太可能,那么您需要找到一种自定义方法来确保用户是他声称的用户

如果您的用户有带有电子邮件的openid
somebody@example.com
然后您可以使用解决方案(例如,还有其他解决方案)验证他的身份并允许他访问

如果不太可能,那么您需要找到一种自定义方法来确保用户是他声称的用户

不知怎的,就像这样:

if cleaned_data['email'].endswith('@example.com'):
    user = None
    try:
        user = User.objects.get(email = cleaned_data['email'])
    except:
        pass
    if user:
        login(request, user)
您的概念允许所有知道或猜测其中一个受影响电子邮件地址的人无需使用密码即可登录

致以最良好的祝愿

不知怎的,就像这样:

if cleaned_data['email'].endswith('@example.com'):
    user = None
    try:
        user = User.objects.get(email = cleaned_data['email'])
    except:
        pass
    if user:
        login(request, user)
您的概念允许所有知道或猜测其中一个受影响电子邮件地址的人无需使用密码即可登录


致以最良好的祝愿

假设“在正确的域上”意味着他们有相关域的电子邮件地址,你可以写一个

  • 查看是否有一个用户使用该电子邮件地址(且不超过一个,这也意味着更新注册流以确保电子邮件地址的唯一性,并可能检查您的数据库是否已经存在重复的电子邮件地址,以防万一)
  • 获取该用户并拆分其电子邮件地址的域,以对照允许的无需密码的域列表进行检查
  • 从自定义身份验证后端返回用户,就像正常密码检查已得到满足一样,即使从未使用check_password()进行过检查。Django文档和各种Djangosippets.org代码片段展示了如何做到这一点
此外:

  • 您必须为管理员登录视图使用一个新的/重写的身份验证表单类,该类不需要密码字段(但对于非特殊登录仍然显示该字段),这样,如果没有输入密码,它就不会抱怨
最后:

  • 如果你还没有宗教信仰,那就去信仰吧
  • 向你的G/上帝祈祷,确保没有其他人知道该网站将不允许使用电子邮件地址进行密码验证,尤其是他们不会获得相关电子邮件地址,特别是如果你的网站持有任何关于第三方的个人数据或必须符合PCI-DSS等
  • < L> >强>强烈地考虑对你的客户/用户/管理者/无论是谁要求的“拒绝”,原因是在<>强>的原因。使用密码是有原因的
或者,最后,最后:

  • 跳过以上所有内容,告诉您的客户/用户/经理一些不同的密码存储工具,例如

假设“在正确的域上”意味着他们有相关域的电子邮件地址,你可以写一个

  • 查看是否有一个用户使用该电子邮件地址(且不超过一个,这也意味着更新注册流以确保电子邮件地址的唯一性,并可能检查您的数据库是否已经存在重复的电子邮件地址,以防万一)
  • 获取该用户并拆分其电子邮件地址的域,以对照允许的无需密码的域列表进行检查
  • 从自定义身份验证后端返回用户,就像正常密码检查已得到满足一样,即使从未使用check_password()进行过检查。Django文档和各种Djangosippets.org代码片段展示了如何做到这一点
此外:

  • 您必须为管理员登录视图使用一个新的/重写的身份验证表单类,该类不需要密码字段(但对于非特殊登录仍然显示该字段),这样,如果没有输入密码,它就不会抱怨
最后:

  • 如果你还没有宗教信仰,那就去信仰吧
  • 向你的G/上帝祈祷,确保没有其他人知道该网站将不允许使用电子邮件地址进行密码验证,尤其是他们不会获得相关电子邮件地址,特别是如果你的网站持有任何关于第三方的个人数据或必须符合PCI-DSS等
  • < L> >强>强烈地考虑对你的客户/用户/管理者/无论是谁要求的“拒绝”,原因是在<>强>的原因。使用密码是有原因的
或者,最后,最后:

  • 跳过以上所有内容,告诉您的客户/用户/经理一些不同的密码存储工具,例如
+1拒绝!给客户。除非这件事完全在公司的防火墙内,或者你真的不在乎访问方法是否发布在133thaxors.org上,否则它需要正确管理帐户和密码。+1拒绝!给客户。除非这个东西完全在公司的防火墙内,或者你真的不在乎访问方法是否发布在133thaxors.org上,否则它需要正确管理帐户和密码。