2014-01-31 31 views
1

在我的項目中,我使用omniauth-facebook(g +)gems爲用戶提供了在1次點擊中創建accoutns的能力。然而,在用戶登錄Facebook(g +)後,他被重定向到回調網址。在我的情況下,它看起來像www.example.com/users/omniauth_callbacks/facebook使用omniauth策略的動態回調url

Facebook的行動看起來像

def facebook 
@user = User.find_by_email(ENV['omniauth'].email) 
if @user 
sign_in @user 
redirect_to root_path 
else 
create_user_account(ENV['omniauth']) 
end 

但不是redirect_to的root_path我想要重新回到用戶的頁面,他叫sign_in過程。我嘗試使用redirect_to:back,但是這會引發錯誤,並帶有空的HTTP_REFERRER。在用戶啓動sign_in過程之前,有沒有其他方式跟蹤控制器和操作,然後將其存儲並在回調後使用?

回答

0

Omniauth本身不提供任何工具來做到這一點。但是,你可以自己簡單地實現一些神仙。例如,您可以將當前網址存儲在Cookie /會話中,並將其重定向到您的facebook方法中。這裏有一個類似的回答question

0

回答自己的問題。這是散列片,包含這些信息。它儲存在 request.env['omniauth.origin']