我正在尝试弄清楚如何使用其他功能来增强身份验证方法。
e.g。
该网站的前端非常简单,但管理面板呢?
我认为我应该覆盖User的Manager对象,因为authenticate可能位于那里。我觉得这很难理解。
提前致谢! :)
答案 0 :(得分:6)
您可以按照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
中的settings.py
。
虽然这是用于身份验证,但是如果密码正确但过期,您可以通过将用户重定向到更改密码页面来执行您提到的所有密码验证。考虑使用messaging framework向用户提供有关将他指向通用更改密码页时发生的事情的提示。
答案 1 :(得分:0)
如果您希望将密码验证内置到模型中,那么您可能希望extend the django User model。
否则,您可以执行以下操作:
(r'^admin/', include(admin.site.urls))
之上,来覆盖管理员密码选项。正则表达式看起来像(r'^admin/auth/user/(\d+)/password/', new_change_password)
。