如何摆脱 django 中的密码限制(例如,密码必须为 8 个字符,密码不能与用户名过于相似等)

Posted

技术标签:

【中文标题】如何摆脱 django 中的密码限制(例如,密码必须为 8 个字符,密码不能与用户名过于相似等)【英文标题】:How do I get rid of the password constraints (eg. password has to be 8 characters, password can't be too similar to username, etc.) in django 【发布时间】:2020-01-13 19:25:14 【问题描述】:

我需要摆脱默认django密码注册系统中的密码限制,这样用户就不需要密码是八个字符或者密码不能与用户名太相似,并且能够添加我自己的密码约束,例如强度检测器。

【问题讨论】:

你使用的是哪个版本的 Django? 我使用的是 2.2.5 版 【参考方案1】:

设置AUTH_PASSWORD_VALIDATORS 是用户密码必须通过的验证器/约束的列表。如果您使用startproject,这些将被设置为包括您提到的两个约束。您可以将它们从设置中移除

例如,这是使用最新版本的 Django 使用 startproject 开始的新项目的设置

AUTH_PASSWORD_VALIDATORS = [
     # This validates against the username
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    ,
     # This validates the length
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    ,
    
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    ,
    
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    ,
]

【讨论】:

谢谢,但我在创建注册表时也想知道,在 django 中给出错误时如何指定需要填写的字段。现在的错误只是“此字段是必需的”,但是我如何将此字段更改为实际字段,例如密码或用户名之类的。 是的,我希望它被指定为需要密码或需要用户名,而不是这个字段是必需的 这有点复杂,您必须覆盖注册表并在其中添加这些消息***.com/questions/1481771/…

以上是关于如何摆脱 django 中的密码限制(例如,密码必须为 8 个字符,密码不能与用户名过于相似等)的主要内容,如果未能解决你的问题,请参考以下文章

如何给MySQL数据库的表中的密码字段设置长度限制?

如何摆脱从标签接管的密码字段上的占位符

铁路围栏密码摆脱循环重复[关闭]

如何将活动目录中的密码更改限制为从“现在”开始的某个时间段

Django模型中的密码字段

如何在 Django Rest Framework 中散列 Django 用户密码?