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

我使用默认代码的问题是这样的:它将用户标识符设置为他们的电子邮件地址。如果标识符要在网站上公开使用(例如,标识页面/博客上的评论者),则您需要用户不介意显示的标识。

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

我可以很容易地进行更改。但是我真的不想一直派生Yesod模块,使它们执行我希望它们执行的操作。使用现有的yesod-auth模块还有另一种方法吗?完全有可能按原样使用框架来完成此操作,但是如果是这样的话,不妨举一个小例子。

最佳答案

我不确定您要使用什么代码在网站上显示用户的身份,但是可以很容易地在用户表中添加一列:

User
  ...
  publicIdentifier Text Update


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

#{userPublicIdentifier user}

关于haskell - Yesod.Auth.Email-设置公共(public)用户标识符,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7000477/

10-15 12:01