009994c3985985809d2d644bd49aa1c2

Devise 跟 Cancan 合併使用的研究

lulalalaGem 節點 中發起
最後由 匿名 於回應 , 347次閱讀

研究 Cancan 跟 Devise 究竟怎樣子合作最好的,筆記就留在這裡。

問題篇

想要達成的功能:
1. 在公共的 A 頁面,按下 login 連結到登入頁面,登入後到自動跳回 A 頁面。
2. 在公共的 A 頁面,按下需登入的 B 頁面的連結,自動導到 login 登入頁面,登入後自動跳到 B 頁面。

Devise 目前提供的功能是,你手動在需要認證的 action (B頁面)跑 authenticate_user! ,那麼拜訪那個頁面時就會自動跳到 login 頁,登入後直接跳回該 action。原理是認證時,devise會把B頁面網址存在 session[:user_return_to] 中,認證成功就會跳回那裡。

這對於我想達到的功能1沒有幫助,因為我是從公共 A 頁來的。所以得自己主動存 url 到 session裡頭。

然後覺得 cancan 的 ability 跟 devise 的 authenticate 功能方面有些重疊。一個action要 authenticate_user! 跟 ability 都填寫才行。是否有辦法 authentication 歸給 devise 作,而 authorization 歸給 cancan 作,但是又能規則共用一個 ability 檔案呢?

待續...

暫無回應。
需要 登入 後方可回應,如果你還沒有帳號按這裡 註冊