[英]Devise + Omniauth / Passing partial info into Omniauth Controller for redirect
我的Devise + Omniauth設置當前使用以下路徑通過Facebook登錄用戶:
user_omniauth_authorize_path(:facebook)
我有一個部分顯示項目列表,每個項目都有一個鏈接,該鏈接:
1)如果未登錄,則使用上述路徑登錄用戶
2)如果已登錄到項目顯示頁面的鏈接
如果未登錄,我想修改#1以重定向登錄后單擊的特定項目的項目顯示頁面。
這將需要以某種方式將項目的ID傳遞到Omniauth控制器中。
有什么建議么?
不,它是用更簡單的方式完成的。
在項目控制器中設置一個before_filter
class ItemController < ApplicationController
before_filter :authenticate_user!
end
然后將所有鏈接呈現為項目的鏈接,如下所示:
<%= link_to 'item', item_path(@item) %>
在這種情況下,如果用戶未登錄並嘗試查看某些項目,則他將被重定向到登錄頁面,並且在登錄后,他將被重定向回到他要查看的項目。
這種方法還可以確保除非用戶登錄就無法查看您的商品(即使他復制了商品的鏈接並將其發送給在您的網站上沒有帳戶的朋友)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.