2011-08-29 47 views
9

上週我們三個人花了兩天的時間嘗試使用Happstack來構建一個簡單的Web應用程序。我們的擔心之一是身份驗證,看起來有一次看起來非常好的Happstack.Auth包。不幸的是,原來的項目似乎已經被放棄了,雖然已經有了一個分支,但我們無法獲得分支。建議使用Happstack網絡開發工具包進行身份驗證的軟件是什麼?

人們推薦在Happstack中進行身份驗證的方法有哪些? 是happstack-auth是否可行?

回答

5

你可能會考慮作爲替代happstack進行身份驗證,

的darcs獲得http://src.seereason.com/happstack-authenticate/

happstack進行身份驗證建立在身份驗證和pwstore的頂部,以提供:

  1. 標準的用戶名/密碼認證
  2. openid認證
  3. facebook連接

該代碼的設計使其可用於多種不同的模板解決方案。雖然目前只有HSP模板。

它不是在hackage,但將是。我期望它成爲事實上的哈勃堆認證解決方案。

你可以看到它是這裏的行動:

http://www.seereason.com/

源代碼包含有自我演示目錄包含的例子。

該代碼的作品 - 儘管還有一些功能仍需要添加。例如,如果您被重定向到登錄頁面,則最終應該轉回到您登錄後嘗試訪問的原始頁面。

目前最大的缺點是文檔。這將得到解決。

您會注意到,happstack-authenticate使用web路由進行類型安全的URL和酸性狀態來存儲身份驗證信息。但是,這些設計選擇不必泄漏到應用程序的其餘部分。

您使用的是什麼模板解決方案?我希望增加對其他系統的支持。

- jeremy

p.s.如果你看看代碼,它可能看起來比預期的更復雜。這是因爲它被設計爲允許:單個輪廓

例如

  1. 多種驗證方法,你可以多的OpenID帳戶相同的配置文件鏈接。也許是因爲你擔心你可能會失去對主要openid帳戶的訪問權限。或者,您可能希望團隊中的每個人都使用共享帳戶登錄。(例如,在像twitter這樣的網站上,您可能希望多個人能夠通過公司帳戶發佈推文)。

  2. 單個身份驗證方法

    網站上的Twitter等多個配置文件,你可能有多個帳戶。例如,我有Twitter帳戶,我自己,我的攝影,我的音樂,happstack,seereason等等。不要爲每個帳戶分別進行驗證,而只需進行單一驗證,然後選擇我想要的「個人資料」即可。

當然,使用happstack-authenticate的網站不必支持這些選項。

+0

目前我們使用'Text.Blaze'進行模板化。我們更喜歡WASH樣式的類型安全的HTML生成器來使用XML模板樣式。 –

+0

對happstack-authenticate的blaze-html支持絕對是TODO列表中的下一個模板庫。如果這是一個阻礙者,我可以儘早做,而不是晚些。我本週搬家,但下個星期我可以做。 – stepcut