上周,我们三个人花了两天时间尝试使用Happstack构建一个简单的 Web 应用程序。我们关注的一个问题是身份验证,似乎曾经有一个Happstack.Auth
看起来非常好的包。不幸的是,原来的项目似乎已经被放弃了,虽然有一个分叉,但我们无法构建分叉。
人们建议在 Happstack 中进行身份验证的替代方法是什么?happstack-auth
可行吗?
上周,我们三个人花了两天时间尝试使用Happstack构建一个简单的 Web 应用程序。我们关注的一个问题是身份验证,似乎曾经有一个Happstack.Auth
看起来非常好的包。不幸的是,原来的项目似乎已经被放弃了,虽然有一个分叉,但我们无法构建分叉。
人们建议在 Happstack 中进行身份验证的替代方法是什么?happstack-auth
可行吗?
您可能会考虑将 happstack-authenticate 作为替代方案,
darcs 获取http://src.seereason.com/happstack-authenticate/
happstack-authenticate 构建在 authenticate 和 pwstore 之上,以提供:
该代码的设计使其可以与多种不同的模板解决方案一起使用。虽然,目前只有 HSP 模板。
它还没有被黑客入侵,但将会。我希望它成为事实上的 happstack 身份验证解决方案。
你可以在这里看到它的动作:
源代码包括一个演示目录和一个自包含的示例。
该代码有效——尽管仍有一些功能需要添加。例如,如果您被重定向到登录页面,您最终应该被转发回您登录后尝试访问的原始页面。
目前最大的缺点是文档。这将得到解决。
你会注意到 happstack-authenticate 使用 web-routes 作为类型安全的 url,使用 acid-state 来存储身份验证信息。但是,这些设计选择不必泄漏到应用程序的其余部分。
您使用什么模板解决方案?我有兴趣添加对其他系统的支持。
——杰里米
ps 如果您查看代码,它可能看起来比预期的要复杂一些。这是因为它旨在允许:
单个配置文件的多种身份验证方法
例如,您可以将多个 openid 帐户链接到同一个人资料。也许是因为您害怕您可能无法访问您的主要 openid 帐户。或者,也许您希望团队中的每个人都使用共享帐户登录。(例如,在 twitter 之类的网站上,您可能希望多个人能够通过公司帐户发布推文)。
单一身份验证方法的多个配置文件
在类似 twitter 的网站上,您可能有多个帐户。例如,我有 Twitter 帐户,包括我自己、我的摄影、我的音乐、happstack、seereason 等等。与其对每个帐户进行单独的身份验证,不如进行一次身份验证,然后选择我想要的“个人资料”。
当然,使用 happstack-authenticate 的站点不必支持这些选项。