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

人们建议在Happstack中进行身份验证有哪些选择?happstack-auth是否可行?

最佳答案

您可以考虑使用happstack-authenticate作为替代方案,

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

happstack-authenticate建立在authenticate和pwstore之上,可提供:

  • 标准用户名/密码认证
  • openid认证
  • facebook连接

  • 该代码经过精心设计,可与多种不同的模板解决方案一起使用。尽管目前只有HSP模板。

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

    您可以在这里看到它是动作:

    http://www.seereason.com/

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

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

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

    您会注意到,happstack-authenticate使用Web路由来存储类型安全的url,并使用acid-state来存储认证信息。但是,这些设计选择不必泄漏到应用程序的其余部分中。

    您正在使用哪种模板解决方案?我会对增加对其他系统的支持感兴趣。

    -杰里米

    ps。如果您看一下代码,它似乎比预期的要复杂一些。这是因为其目的是为了:
  • 单个配置文件的多种身份验证方法

    例如,您可以将多个openid帐户链接到同一个人资料。也许是因为您担心自己可能无法访问您的主要openid帐户。或者,也许您希望团队中的每个人都使用共享帐户登录。 (例如,在类似twitter的网站上,您可能希望多个人能够通过公司帐户发布推文)。
  • 多个配置文件用于单个身份验证方法

    在类似Twitter的网站上,您可能有多个帐户。例如,我有自己的Twitter帐户,我的摄影作品,我的音乐,happstack,seereason等。与其对每个帐户进行单独的身份验证,不如先进行一次身份验证,然后选择我想成为的“个人资料”,这将是很好的选择。

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

    09-10 20:00