我一直在学习Yesod,用它来重建我的网站。我开始使用yesod init
生成的代码。此代码使用Yesod附带的身份验证框架,包括Yesod.Auth.Email,它允许您通过提供电子邮件地址来创建帐户。
我对默认代码的问题是:它将用户标识符设置为其电子邮件地址。如果标识符将在网站上公开使用(例如,识别页面/博客上的评论员),那么您需要一些用户不介意显示的标识符。
理想情况下,我希望网站在提交电子邮件地址时,或者点击链接验证帐户并输入密码时,要求提供(唯一的)公共标识符。问题是,这似乎需要更改Yesod模块,因为寄存器/密码表单是在那里定义的。
我可以轻松地进行更改。但我真的不想继续使用Yesod模块来让他们做我想让他们做的事情。有没有其他方法可以使用现有的yesod-auth模块执行此操作?完全有可能这可以通过框架完成,但如果是这样,一个小例子将不胜感激。
答案 0 :(得分:1)
我不确定您使用哪些代码在网站上显示用户的身份,但您可以非常轻松地在用户表中添加一列:
User
...
publicIdentifier Text Update
并在您的小村庄中插入变量:
#{userPublicIdentifier user}