2011-09-07 81 views
5

我已經使用Sinatra和帕德里諾進行了相當長時間的編程。但是,我仍然無法爲Padrino找到正確的認證和授權解決方案。讓我解釋我的期望和我已經嘗試過的。帕德里諾的身份驗證和授權解決方案

隨着西納特拉,我成功地使用sinatra-authentication寶石與寶石role_model一起。我通常使用Mongoid ORM與MongoDB交談。這兩個寶石一起讓我照顧身份驗證,保護路線,檢查登錄用戶的角色以應用訪問控制。

sinatra-authentication不適用於Padrino--它對Sinatra非常具體。我多次嘗試過。我已經嘗試了omniauth和warden與相應的Padrino模塊,但由於某種原因,我無法讓它們像美妙的sinatra -autentication gem一樣簡單地工作。

所以 - 之前,我可以嘗試實現我自己的解決方案(或移植西納特拉的身份驗證Padrino) - 任何人都可以提出任何其他身份驗證和授權的解決方案?目前我不需要任何關注 - 基於簡單的基於數據庫的身份驗證將完全正常工作。

回答

0

我建議使用內置身份驗證解決方案,只需看看padrino-admin,就可以在任何您需要的應​​用程序內使用Padrino :: Authentication而無需管理員。

這很簡單,基於角色/路徑。

http://www.padrinorb.com/api/Padrino/Admin/AccessControl/Base.html#allowed%3F-instance_method

+3

使用padrino-admin強制您使用由admin生成的帳戶模型(或解決方法它);這對OP來說可能不是最佳的。更重要的是,有開放的安全問題(https://github.com/padrino/padrino-framework/issues/384)任何在生產中部署padrino-admin的人都應該知道。 – pithyless

+2

這個安全問題在2年前關閉了,未來的觀衆 – Jonah

1

爲Padrino has been discussed一個獨立的身份驗證解決方案,但還沒有被解決。與此同時,一個流行的建議是使用padrino-warden

免責聲明:我和OP有類似的情況,但沒有運行個人監督生產的經驗。

+0

是的,這是爲了說明這一點 - 這已經預定爲v1.0。我們最終可能會實施一個API來插入您自己的解決方案(以及建議/建議),並在授權和身份驗證之間分開關注。請繼續關注@pithyless強調的問題。 –

1

瑞恩·貝茨對如何做到這一點有很大的Rails截屏(不是免費的:http://railscasts.com/episodes/250-authentication-from-scratch-revised)。

應該不會太難適應Rails Magic走,做同樣的事情西納特拉或Padrino。現在

,這可能不是一個不錯的選擇,如果你需要噸喜歡遺忘密碼等功能,但再一次,那些不應該太難以適應。

3

我知道問題是兩歲。但是我最近仍然遇到同樣的麻煩,因爲padrino-warden沒有記錄在案,而且我遇到了很多問題。所以我在workaround.org上記錄了我的發現。願它幫助不幸的人。

我認爲padrino-admin是一個很好的腳手架可以學習。但用戶模型相當不靈活。授權的概念奇怪地做了Padrino的作者不喜歡的事情:將配置路徑放在中心位置,而不是將配置移動到控制器中。 (padrino-admin還有其他問題,比如缺少分頁和缺少對外鍵的支持,所以它不能與Django提供的遠程比較。)