用户名验证
username-validator的Python项目详细描述
用户名验证
从django-registration提取的用于django应用程序外部的用户名验证方法(不依赖django)。
James Bennett的postLet’s talk about usernames很好地描述了为什么以及如何执行用户名验证。
这个库执行保留名称检查和confusable homohomoglyph检查。
用法
如果名称是可混淆或保留的,则将抛出Exception
。
所有支票
from username_validator import UsernameValidator
# checks both reserved names and confusable
UsernameValidator().validate_all("myname")
仅可混淆检查
from username_validator import UsernameValidator
UsernameValidator().validate_confusables_email("myname@something.com")
UsernameValidator().validate_confusables('j\u0430ne_doe') # will throw exception
仅保留姓名检查
from username_validator import UsernameValidator
UsernameValidator().validate_reserved("myname")
自定义保留列表
您可以使用特定于域的名称添加到保留列表或完全替换它。默认列表分为多个类别并公开,因此您可以根据需要进行选择。
使用我们的自定义名称扩展保留列表
UsernameValidator(additional_names=["myspecialname", "myothername"]).validate_reserved("myname")
将默认列表替换为子集
from username_validator import UsernameValidator, PROTOCOL_HOSTNAMES, SENSITIVE_FILENAMES
UsernameValidator(reserved_names=(PROTOCOL_HOSTNAMES + SENSITIVE_FILENAMES)).validate_all("my_name")
学分
这段代码几乎是django-registration的直接复制粘贴,删除了django实用程序方法。感谢James Bennett的出色工作。