9

上周,我们三个人花了两天时间尝试使用Happstack构建一个简单的 Web 应用程序。我们关注的一个问题是身份验证,似乎曾经有一个Happstack.Auth看起来非常好的包。不幸的是,原来的项目似乎已经被放弃了,虽然有一个分叉,但我们无法构建分叉。

人们建议在 Happstack 中进行身份验证的替代方法是什么?happstack-auth可行吗?

4

1 回答 1

5

您可能会考虑将 happstack-authenticate 作为替代方案,

darcs 获取http://src.seereason.com/happstack-authenticate/

happstack-authenticate 构建在 authenticate 和 pwstore 之上,以提供:

  1. 标准用户名/密码认证
  2. openid 认证
  3. 脸书连接

该代码的设计使其可以与多种不同的模板解决方案一起使用。虽然,目前只有 HSP 模板。

它还没有被黑客入侵,但将会。我希望它成为事实上的 happstack 身份验证解决方案。

你可以在这里看到它的动作:

http://www.seereason.com/

源代码包括一个演示目录和一个自包含的示例。

该代码有效——尽管仍有一些功能需要添加。例如,如果您被重定向到登录页面,您最终应该被转发回您登录后尝试访问的原始页面。

目前最大的缺点是文档。这将得到解决。

你会注意到 happstack-authenticate 使用 web-routes 作为类型安全的 url,使用 acid-state 来存储身份验证信息。但是,这些设计选择不必泄漏到应用程序的其余部分。

您使用什么模板解决方案?我有兴趣添加对其他系统的支持。

——杰里米

ps 如果您查看代码,它可能看起来比预期的要复杂一些。这是因为它旨在允许:

  1. 单个配置文件的多种身份验证方法

    例如,您可以将多个 openid 帐户链接到同一个人资料。也许是因为您害怕您可能无法访问您的主要 openid 帐户。或者,也许您希望团队中的每个人都使用共享帐户登录。(例如,在 twitter 之类的网站上,您可能希望多个人能够通过公司帐户发布推文)。

  2. 单一身份验证方法的多个配置文件

    在类似 twitter 的网站上,您可能有多个帐户。例如,我有 Twitter 帐户,包括我自己、我的摄影、我的音乐、happstack、seereason 等等。与其对每个帐户进行单独的身份验证,不如进行一次身份验证,然后选择我想要的“个人资料”。

当然,使用 happstack-authenticate 的站点不必支持这些选项。

于 2011-08-29T14:58:52.683 回答