2008-08-23 57 views
82

我正在尋找可以在我的RoR應用程序中使用的預構建解決方案。我理想的是尋找類似於提供電子郵件驗證和註冊控件的ASP.NET Forms身份驗證,並允許用戶重置密碼。噢,並且很容易讓我把當前登錄到應用程序的用戶拉出來。在Ruby on Rails中進行身份驗證的最佳解決方案

我已經開始研究已經寫好的作品,但我發現它確實令人困惑。我已經看過LoginGenerator,RestfulAuthentication,SaltedLoginGenerator,但似乎沒有一個地方有很好的教程或提供了比較。如果有一個網站我還沒有發現,或者如果有大多數人使用的事實上的標準,我會很感激這個幫助。

回答

82

AuthLogic似乎是塊新的孩子,似乎是restful_authentication的下一個演進,使用更方便,等

http://github.com/binarylogic/authlogic/tree/master

編輯:現在的Rails 3超出,設計似乎是新的,新來的小子塊

https://github.com/plataformatec/devise 或者我一直在我自己的滾動認證與內置於軌has_secure_passwordhttp://railscasts.com/episodes/250-authentication-from-scratch-revised

附註:紅寶石工具箱是尋找各種類別目前最好的解決方案(基於GitHub上觀察的次數)一個偉大的網站:

http://ruby-toolbox.com/categories/rails_authentication.html

+0

我真的會考慮使用authlogic。它比restful_auth更清潔。 Authlogic從以前的所有解決方案中學習,並將其重新包裝在一個更清潔,更可定製的解決方案中 – taelor 2009-05-17 21:57:31

+0

我接受了您的建議並使用Authlogic,我感到非常高興。可能需要更長的時間來設置,它非常乾淨,容易理解。沒有可怕的成堆代碼。 – 2009-07-17 15:23:58

+0

是的,它需要更長的時間來設置。我希望他已經在那裏取消了一些抽象,並且隨附每個人都需要的東西,比如忘記密碼,以及包含電子郵件確認信息。但總的來說,它還是很不錯的。 – 2009-07-17 21:46:43

21

我真的會推薦Restful Authentication。我認爲這幾乎是事實上的標準。

+1

我會第二本。我最近不得不實現一個非常複雜的多站點身份驗證系統,該系統基於RestfulAuth設計,爲RA應用程序的其餘應用程序提供相同的API,Definatly非常容易使用API​​輕鬆實現閱讀代碼:-) – 2008-09-20 16:03:42

3

請注意,LoginGenerator和SaltedLoginGenerator已被Restful Authentication取代,並且在新的Rails版本中不受支持 - 不要浪費任何時間,儘管它們當時很棒。

4

我還想指出一個很好的tutorial/discussion關於擴展Restful Authentication的核心功能,以防您正在尋找更強大的功能。

+1

請不要認爲我非常粗魯,但我認爲論壇條目是Restful Authentication最糟糕部分的一個例子。有許多缺失的功能,這是一個超長(和矛盾)的步驟,一次添加一個功能。 無論與DRY相反的是,我很確定就是這樣。只有你不重複自己,你重複了數百個其他開發者,從一開始就包含本應包含或可選的內容。 – 2009-12-06 05:49:10

2

restful_authentication是一個功能強大的工具,它非常靈活,可以提供大部分開箱即用的功能。然而,一些注意事項:

  1. 不要用'控制'來思考。在Rails中,模型,視圖和控制器比'Webforms-style'ASP.NET更獨立。從每個圖層獨立制定出你想要的,編寫測試/規格以匹配並確保每個圖層都符合你的期望。
  2. 即使您正在使用插件,也無法替代讀取(至少一些)生成的代碼。如果你有一個大膽的想法,你會發現調試和定製更容易。
2

插件restful_authentication和擴展它,回答您的需求完美其它插件。在github.com上快速搜索會發現很多教程,示例和擴展。剛去這裏:
- http://github.com/search?q=restful_authentication

存在使用restful_authentication只是提供一個最基本的Rails應用程序的例子只有在認證部分的幾個項目。

  1. http://github.com/fudgestudios/bort - 一種基本的Rails應用特色:REST風格的認證
  2. http://github.com/mrflip/restful_authentication_example - 同上,捆綁一些其他的插件 - 與如何使用restful_authentication
  3. http://github.com/activefx/restful_authentication_tutorial很大examlpe另一個項目。
  4. http://railscasts.com/episodes/67-restful-authentication - 一個偉大的截屏解釋restful_authentication

這些信息應該足以讓你開始發現頭和尾巴...祝你好運。

3

AuthLogic似乎是你想要的這個。它非常易於配置,儘管它不會爲您生成代碼,但使用起來非常簡單。對於電子郵件驗證和密碼恢復,您可能需要使用:perishable_token列。 AuthLogic會處理它,您只需在使用它時重置它。有關如何設置基本應用程序的信息,可以查看Ryan Bates的Railscast on AuthLogic以及「官方」示例應用程序。 AuthLogic的創始人Ben Johnson也撰寫了一篇關於如何重設密碼的博文。

不幸的是我不能發佈多個鏈接,但鏈接到railscast,密碼重置博客文章和示例應用程序都在README(見AuthLogic回購的自述)

更新:現在我可以發佈更多的聯繫,所以我聯繫更多一些。感謝您marinatime添加在同時

3

我真的很喜歡thoughtbot的間隙中的鏈接。非常簡單,有幾個很好的鉤子,可以測試。

0

一票通關 - 也許不是定製或「在」作爲authlogic,但只是能夠將它放在地方去方面,它絕對值得擁有看一看。

10

對於一個真正簡單的解決方案去Clearance

如果您正在尋找更多的選擇Devise是一個很好的解決方案。它使用Warden這是一個基於機架的認證系統。

2

剛剛更新此:Ryan Bates的Railscast #250節目從頭開始構建的認證系統....

相關問題