如何扩展Turbogears 2.1登录功能

时间:2009-12-25 08:02:18

标签: python turbogears turbogears2

我正在使用Turbogears 2.1和repoze.who / what,并且无法弄清楚如何扩展基本身份验证功能。我本质上是试图要求用户在登录之前通过电子邮件链接激活他们的帐户。如果他们尝试在不激活帐户的情况下登录,我想显示相应的错误消息。默认的Turbogears功能只显示所有错误的一条消息。

我创建了自己的身份验证插件,工作正常。如果用户未激活帐户,则不允许用户登录。但是,当我尝试创建表单并显示自定义错误消息时,问题就出现了。我怎么能这样做呢?

由于

1 个答案:

答案 0 :(得分:4)

如果没有看到实际的代码,就不可能给出一个非常好的答案,但这里有一个想法:

  1. 创建一个repoze.who元数据提供程序插件,该插件“涂鸦”指示用户是否已激活其帐户的内容。
  2. 创建一个“challenger decider”插件,该插件查看用户是否已经过身份验证,以及是否已激活其帐户(通过检查您使用元数据插件设置的元数据)。
  3. 创建一个挑战者插件以发回实际挑战。如果用户未经过身份验证,请发回登录表单/提示。如果用户已通过身份验证(您的身份验证器插件已成功),但他们尚未激活其帐户,请发回自定义错误页面,要求用户激活其帐户。
  4. 无论如何,请仔细阅读this page

    您也可以使用repoze.what与自定义谓词,但您可能需要在代码中撒上装饰器,检查他们的帐户是否已在每个控制器/方法上激活。难看。

    希望这有帮助!