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