我正在使用OAuth提供商(LinkedIn)。如何通過OAuth身份驗證傳遞參數以便我的回調或控制器可以使用?
我希望能夠傳遞參數,這樣當有人註冊時,我可以在新用戶創建時添加一些附加值(我正在使用Devise)。
但我該怎麼做?
它看起來像鏈接去的提供商,然後回調我的應用程序。我怎樣才能從該鏈接傳遞參數?
我正在使用OAuth提供商(LinkedIn)。如何通過OAuth身份驗證傳遞參數以便我的回調或控制器可以使用?
我希望能夠傳遞參數,這樣當有人註冊時,我可以在新用戶創建時添加一些附加值(我正在使用Devise)。
但我該怎麼做?
它看起來像鏈接去的提供商,然後回調我的應用程序。我怎樣才能從該鏈接傳遞參數?
最簡單的方法是在會話中設置參數,然後在回調中訪問它們。
在你的行動,重定向到提供者:
session[:additional] = additional_data_hash
在處理來自提供商的回調動作:
data = session.delete(:additional)
使用delete
,以確保您的會話的後續請求仍然很小。
如果添加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" }
答案是有點晚了,但我希望它可以幫助別人。
事情是吧每次都會新的,foo會一樣的,那可能怎麼樣?我想讓酒吧充滿活力 – user1735921 2015-09-10 06:53:16
請注意,如果您使用的是ng-token-auth,那麼您可以將參數傳遞給$auth.authenticate,這些將在創建用戶模型時使用。 例如:
$auth.authenticate('github', {params: {favorite_color: 'green'})
我認爲確實重定向操作是在色器件....我如何處理呢? – Angela 2011-04-25 13:49:02
好吧,所以我想我把它作爲一個會話添加,讓它回到電話回來,我用它... – Angela 2011-04-27 04:50:06
我真的很喜歡它,如果有人可以正確回答這個問題。會議討論的是實際解決的問題。 – ghayes 2011-08-05 18:02:09