【问题标题】:Yesod.Auth.Email - setting a public user identifierYesod.Auth.Email - 设置公共用户标识符
【发布时间】:2011-08-10 10:22:19
【问题描述】:

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

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

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

我可以很容易地进行更改。但我真的不想继续分叉 Yesod 模块来让他们做我想让他们做的事情。有没有其他方法可以使用现有的 yesod-auth 模块来做到这一点?完全有可能使用框架原样完成此操作,但如果是这样,我们将不胜感激。

【问题讨论】:

    标签: haskell yesod


    【解决方案1】:

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

    User
      ...
      publicIdentifier Text Update
    

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

    #{userPublicIdentifier user}
    

    【讨论】:

    • 我可以这样做,但问题是当用户提供该 publicIdentifier 时。注册新用户的表单在 Yesod.Auth.Email 中定义,但我想在用户注册时要求一个唯一的公共唯一。因此,似乎我必须分叉 Yesod.Auth.Email 来做我想做的事。
    • 我仍然推荐 Max 的方法。看看我们为 Haskellers 做了什么:首先你登录,然后添加额外的配置文件。请记住,Yesod 身份验证应该与 3rd-party 身份验证很好地配合使用,这是唯一可行的方法。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多