2011-12-19 80 views
0

我正在使用帶有rails 3.1.3的最新(1.0.1)版本的Omniauth。 現在,我正在使用37信號戰略omniauth。我想這取決於驗證網址傳遞自定義的參數(「狀態」參數)(如:http://localhost:3000/auth/37signals/ 應該重定向到https://launchpad.37signals.com/authorization/new?(...)&狀態= 5Omniauth - 在重定向url中設置自定義參數

我試圖設置(暫時)固定的狀態,喜歡的東西

provider "37signals", "my_client_id", "my_secret", {state: "5"} 

然而,在我的網址有(還)沒有國家PARAM。 任何想法,爲什麼?是否有可能設置PARAM?

回答

4

創建網址時,你可以在查詢字符串添加狀態,這將是在回調URL可用。

user_omniauth_authorize_path(:facebook, :display => 'page', :state=>'123') %> 

現在回調URL將被

http://localhost:3000/consumers/auth/facebook/callback?state=123&code=ReallyLongCode#_=_ 

現在在回調處理器可以處理的狀態

0

您必須使用:params選項,如

omniauth_authorize_path(:user, :facebook, var: 'value', var2: 'value2') 

及以後的回調中,您可以訪問request.env['omniauth.params']以獲得散列! :)

(抄自this answer