我试图弄清楚如何使用附加功能增强身份验证方法。
例如
- 过期密码
- 特殊密码格式
- 长度要求
- ETC...
对于网站的前端来说这很简单,但是管理面板呢?
我认为我应该覆盖用户的 Manager 对象,因为身份验证可能驻留在那里。我认为这是一个很难弄清楚的问题。
提前致谢!:)
我试图弄清楚如何使用附加功能增强身份验证方法。
例如
对于网站的前端来说这很简单,但是管理面板呢?
我认为我应该覆盖用户的 Manager 对象,因为身份验证可能驻留在那里。我认为这是一个很难弄清楚的问题。
提前致谢!:)
您可以按照http://docs.djangoproject.com/en/dev/topics/auth/#authentication-backends中的说明创建自定义身份验证后端。本质上,您创建了一个具有authenticate
方法的后端类:
class MyBackend:
def authenticate(self, username=None, password=None):
# Check the username/password and return a User.
然后将类添加到AUTHENTICATION_BACKENDS
in settings.py
。
虽然这是用于身份验证,但您可以通过将用户重定向到更改密码页面(例如,如果密码正确但已过期)来完成您提到的所有密码验证操作。考虑使用消息传递框架在将用户引导至通用更改密码页面时向用户提示正在发生的事情。
如果您希望将密码验证内置到模型中,那么您可能需要扩展 django User 模型。
否则,您可以执行以下操作:
(r'^admin/', include(admin.site.urls))
. 正则表达式看起来像(r'^admin/auth/user/(\d+)/password/', new_change_password)
.