2010-04-26 102 views

回答

16

更新 - 2011年6月 - 我一直在使用omniauth gem最近,我認爲這是比使用這一建議的寶石更好的解決方案回答。它可以與Devise很好地合作,並且可以爲您提供一切所需的一切。我創建了一個結合Devise和Omniauth的引擎,並添加了一個控制器來處理回調。我計劃在創業板不少變化而現在我不認爲這是一個穩定的插件,但您可能能夠重用一些在創業板上市代碼:https://github.com/charlotte-ruby/devise_omniauth_engine/blob/master/app/controllers/users/omniauth_callbacks_controller.rb


我最近買了這在Rails 3上工作(有些問題使用OpenID)。我沒有一個可以在github上看到的完整工作示例,但這裏是我正在使用的...所有這些示例都在自述文件中有示例。

Facebook - fbgraph。不像Facebooker,它使用最新的Facebook API。如果你想看一下內部工作原理,那麼源代碼很容易理解。查看自述文件中的身份驗證示例。死簡單。

Twitter - twitter_oauth再次檢查自述認證示例。這也很容易設置。

OpenID的 - rails/open_id_authentication採用紅寶石的OpenID的寶石,但是這個回購協議本身不是寶石,所以你必須將代碼放到你的應用程序或者把你的插件目錄。在自述文件中查看他們的示例,並仔細檢查源代碼以瞭解正在發生的事情(它只有130行代碼)。我修改了一小部分以使其與我的身份驗證插件一起工作,但遇到了一些問題,使其可以同時使用簡單註冊和屬性交換...但您可能能夠使其工作如果rdoc示例適合您的應用程序,那麼它就是開箱即用的。

讓我知道你是否對這些有任何具體問題。當我開始設置時,遇到了幾個我能夠解決的問題。

+0

謝謝你的回答。您是否使用任何通用身份驗證插件(如authlogic,devise,restful_authentication),或者您是否構建了自己的「標準身份驗證」解決方案? – 2010-08-16 12:41:44

+0

我只是做了我自己的簡單認證插件。我並不需要設計和authlogic提供的所有功能。我查看了兩者的源代碼,並挑選了一些我喜歡用於我自己的角色和身份驗證解決方案的東西。雖然我不喜歡重新發明輪子,但當我自己編寫代碼時(從其他解決方案中汲取靈感的同時),我似乎總能學到更多東西。此外,如果我需要擴展它,我不需要通過其他人的資源在一週內挖掘出來。我正在努力將FB/Twitter/OpenID的東西變成一個軌道引擎。如果我在接下來的幾天內做到這一點,我會在這裏發佈。 – johnmcaliley 2010-08-17 01:10:10

+0

這將是優秀的,謝謝:) – 2010-08-17 07:33:14

4

我花了大約一個星期試圖(失敗),以獲得open_id_authentication工作。我試圖使用Authlogic和所有相關的gem和插件。我無法按照我想要的方式讓事情工作。 (認證只適用於:action(/:id)路由啓用,但是當啓用時,我的其他控制器將無法工作,因爲插件中的某些內容剝離了參數散列 - 非常令人沮喪)。

但是,我終於能夠使用Devise(http://github.com/plataformatec/devise)和devise_openid_authenticatable(http://github.com/nbudin/devise_openid_authenticatable)獲得OpenID的工作。我可以在兩頁上按照自述文件的內容來完成所有工作,就像我想要的一樣。簡單。直向前。和Rails 3.0兼容。

+0

是的,我無法得到open_id_authentication工作。現在看着設計。 – iJK 2011-04-24 14:05:18

0

我發現最簡單的方法是使用RPX NOW服務。

您可以在Rails3和RPX NOW寶石上找到一個完整的工作示例,其示例代碼爲github

相關問題