Django 自定义认证字段
背景
Django默认使用username字段来进行认证,而现在对于多数平台来说,更多的通过email或手机号来进行认证,自定义认证字段就是解决这类问题。
说明
Django中在底层,维护着”authentication backends”列表,当调用django.contrib.auth.authenticate() 时,会尝试所有的使用通过settings通过AUTHENTICATION_BACKENDS设置的backend来进行认证,默认为django.contrib.auth.backends.ModelBackend
,依次验证,如果匹配成功,则停止后续处理,如果后台引发PermissionDenied异常,认证失败且不会检查后面的认证。
实例
通过用户名或者email进行认证
|
|
settings.py
|
|