我正在使用 Turbogears 2.1 和 repoze.who/what,但在弄清楚如何扩展基本身份验证功能时遇到了问题。我实际上是在尝试要求用户在登录之前通过电子邮件链接激活他们的帐户。如果他们尝试在不激活帐户的情况下登录,我想显示一条适当的错误消息。默认的 Turbogears 功能仅针对所有错误显示一条消息。
我创建了自己的身份验证插件,效果很好。如果用户尚未激活他们的帐户,它将不允许用户登录。但是,当我尝试创建表单并显示自定义错误消息时,问题就来了。我该怎么做呢?
谢谢
最佳答案
如果不查看您的实际代码,就不可能给出真正好的答案,但这里有一个想法:
- 创建一个 repoze.who 元数据提供者插件,“涂鸦”一些东西来指示用户是否已激活他们的帐户。
- 创建一个“挑战者决策者”插件,查看用户是否已通过身份验证以及他们是否已激活帐户(通过检查您使用元数据插件设置的元数据)。
- 创建挑战者插件以发回实际挑战。如果用户未通过身份验证,则发回登录表单/提示。如果用户已通过身份验证(您的身份验证器插件成功),但他们尚未激活他们的帐户,请发回自定义错误页面,要求用户激活他们的帐户。
无论如何,请阅读this page仔细。
您也可以将 repoze.what 与自定义谓词一起使用,但您可能必须在整个代码中散布装饰器,检查它们的帐户是否已在每个 Controller /方法上激活。丑。
希望这对您有所帮助!
关于python - 如何扩展 Turbogears 2.1 登录功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1960747/