有没有办法让我在Django中正确使用用户的电话号码作为登录/验证机制?到目前为止,我已经在构建的auth系统中使用了Django,所以我从未遇到过这样的要求。
然而,就我而言,除了弄清楚我必须使用一次性密码机制进行身份验证时,我似乎无法取得任何进展。
答案 0 :(得分:8)
您可以自定义User
模型,并指定另一个字段作为用户名。这在the auth documentation中提到:
<强> USERNAME_FIELD 强>
描述用户模型上用作唯一标识符的字段名称的字符串。这通常是某种用户名,但也可以是电子邮件地址或任何其他唯一标识符。该字段必须是唯一的(即,在其定义中设置了unique = True)。
如下所示:
class MyUser(AbstractBaseUser):
phone_number = models.RegexField(...)
...
USERNAME_FIELD = 'phone_number'
您应该仔细阅读身份验证文档,特别是"Customizing the User model"和"Substituting a custom User model"
答案 1 :(得分:0)
只需实现自定义身份验证后端即可。 Django使用电子邮件字段有一个示例in the documentation。只需使用电话号码字段即可。