2016-11-27 153 views
0

我有點困惑提供授權,並在瞬間進行身份驗證。多個用戶認證和授權

首先我要告訴你關於我的項目。它將有兩個主要型號:用戶和專業人士。用戶是請求服務的人。優點是提供服務的人。優點可以有非常不同的工作,因此存儲在我的項目中的數據類型非常不同。 我計劃有不同類型的由專業人士舉行的工作有不同的型號(攝影師,婚禮策劃..)。這些模型將有關係和「擁有」不同的其他模型(圖片添加回形針,鏈接到網站...)。

我想我需要使用寶石兩種身份驗證以及許可(我有制定權威人士記)

現在我的問題:

  • 我會喜歡通過相同的表單讓所有用戶和專業人員登錄。 我想這是一個非常設計的事情。雖然在閱讀了一下Devise之後,似乎每個模型都有一個登錄名。但這個線程提到制定「羣體」
    https://gorails.com/forum/devise-with-multiple-user-models-with-single-login-form 將它肯定解決我的單一形式登錄的問題?

  • 我想有各自的利弊子模型顯示出其記錄到任何類型的用戶,甚至客人的預覽。但是,當專業版登錄後,他們可以訪問擴展配置文件視圖,其中包含更多信息(可以更改的所有人員數據,來自用戶的價格請求等)。你能證實這是在這裏的權威工作嗎?

回答

1

評論家是實現你的第二點的最佳選擇。您可以限制某些操作(如編輯/更新)只能由擁有該帳戶的專業人員實現。在ProPolicy這些行動的代碼看起來是這樣的:

def edit? 
    update? 
end 

def update? 
    record.pro == user 
end 

在使用設計的有關多用戶模型驗證問題而言,你能解釋一下爲什麼你在具有兩個用戶只需一個登錄表單設置?您可以在登錄按鈕上有一個下拉列表,用戶可以選擇他是普通用戶還是專業用戶。或者你甚至可以在表單上選擇他們想要使用的登錄類型。

如果不是這樣,那麼您將不知何故必須檢查您的數據庫,以查看Pro或用戶表中是否存在登錄名。但是,我想這意味着您不能同時使用同一封電子郵件的專業版和用戶帳戶。

+0

你是正確的我甚至沒有想到的事實Pro還可以是用戶。我認爲將兩者分開併爲專業人士製作一個特殊的歡迎頁面會更好。現在我已經安裝並瞭解了Devise,我可以深入專家! TKS – Maxence