Yesod.Auth.Email - 设置公共用户标识符

时间:2011-08-09 17:46:53

标签: haskell yesod

我一直在学习Yesod,用它来重建我的网站。我开始使用yesod init生成的代码。此代码使用Yesod附带的身份验证框架,包括Yesod.Auth.Email,它允许您通过提供电子邮件地址来创建帐户。

我对默认代码的问题是:它将用户标识符设置为其电子邮件地址。如果标识符将在网站上公开使用(例如,识别页面/博客上的评论员),那么您需要一些用户不介意显示的标识符。

理想情况下,我希望网站在提交电子邮件地址时,或者点击链接验证帐户并输入密码时,要求提供(唯一的)公共标识符。问题是,这似乎需要更改Yesod模块,因为寄存器/密码表单是在那里定义的。

我可以轻松地进行更改。但我真的不想继续使用Yesod模块来让他们做我想让他们做的事情。有没有其他方法可以使用现有的yesod-auth模块执行此操作?完全有可能这可以通过框架完成,但如果是这样,一个小例子将不胜感激。

1 个答案:

答案 0 :(得分:1)

我不确定您使用哪些代码在网站上显示用户的身份,但您可以非常轻松地在用户表中添加一列:

User
  ...
  publicIdentifier Text Update

并在您的小村庄中插入变量:

#{userPublicIdentifier user}