2011-04-24 22 views

回答

3

最簡單的方法是在會話中設置參數,然後在回調中訪問它們。

在你的行動,重定向到提供者:

session[:additional] = additional_data_hash 

在處理來自提供商的回調動作:

data = session.delete(:additional) 

使用delete,以確保您的會話的後續請求仍然很小。

+0

我認爲確實重定向操作是在色器件....我如何處理呢? – Angela 2011-04-25 13:49:02

+0

好吧,所以我想我把它作爲一個會話添加,讓它回到電話回來,我用它... – Angela 2011-04-27 04:50:06

+0

我真的很喜歡它,如果有人可以正確回答這個問題。會議討論的是實際解決的問題。 – ghayes 2011-08-05 18:02:09

17

如果添加GET風格PARAMS到驗證網址,他們將通過omniauth.params項下的Rails request.env對象是在回調可用。例如

如果驗證通過:

link_to "Log In", "/auth/linkedin?foo=bar" 

在映射到GET /auth/:provider/callback控制器方法,你將有:

request.env['omniauth.params'] == { "foo" => "bar" } 

答案是有點晚了,但我希望它可以幫助別人。

+0

事情是吧每次都會新的,foo會一樣的,那可能怎麼樣?我想讓酒吧充滿活力 – user1735921 2015-09-10 06:53:16

-1

請注意,如果您使用的是ng-token-auth,那麼您可以將參數傳遞給$auth.authenticate,這些將在創建用戶模型時使用。 例如:

$auth.authenticate('github', {params: {favorite_color: 'green'})

相關問題