2013-02-23 197 views
2

我正在嘗試爲多個提供者實現Devise和Ominauth。一種情況是:用戶首次使用Twitter登錄而不先創建帳戶。將額外參數傳遞給Devise new_user_session_path

要處理此問題,我將用戶從回叫鏈接(/auth/twitter/callback)重定向到註冊頁面以填寫電子郵件地址。

但是,我想從回調鏈接{:provider => "twitter", :uid =>"123"}帶來驗證信息註冊頁面(new_registration_path)。然後,當用戶提交註冊表單時,認證將與帳戶信息一起被捕獲。

我應該怎麼做呢?我試過

redirect_to(new_user_session_path, {:service => service}) 

其中service = {:provider => "twitter", :uid =>"123"} 但服務沒有打通作爲PARAMS通過。

我做錯了什麼?我需要修改Devise的源代碼嗎?

謝謝。

回答

1

你probabbly尋找這樣的:

redirect_to(new_user_session_path(:argument => "value")) 

而且在後重定向(可能UserSessions#新)控制器,你可以訪問參數:

params[:argument] 

你需要傳遞參數給路徑幫手不要redirect_to方法。

在你的榜樣應該是:

redirect_to(new_user_session_path(service)) 

而且在後重定向(可能UserSessions#新)控制器,你可以訪問參數:

params[:provider] 
params[:uid] 

redirect_to(new_user_session_path(:service => service)) 

params[:service][:provider] 
params[:service][:uid] 
相關問題