我正在使用最新的(1.0.1)版本的Omniauth和rails 3.1.3。 现在,我正在使用omniauth和37signals策略。我想根据auth url传递自定义参数(“state”参数)(例如http://localhost:3000/auth/37signals/ 5 应重定向到https://launchpad.37signals.com/authorization/new?(...) &安培;状态= 5
我试图设置(暂时)固定状态,类似
provider "37signals", "my_client_id", "my_secret", {state: "5"}
然而,在我的网址中(仍然)没有状态参数。 有什么想法吗?是否可以设置该参数?
答案 0 :(得分:4)
创建url时,您只需在Query String中添加状态,它也可以在回调URL中使用。
user_omniauth_authorize_path(:facebook, :display => 'page', :state=>'123') %>
现在回调网址将是
http://localhost:3000/consumers/auth/facebook/callback?state=123&code=ReallyLongCode#_=_
现在在回调处理程序中,您可以处理状态
答案 1 :(得分:0)
我认为你不能为网址附加其他参数。服务器端就像指定params一样。
也许你需要看看这个。
答案 2 :(得分:0)
您必须使用:params
选项,如
omniauth_authorize_path(:user, :facebook, var: 'value', var2: 'value2' )
以及稍后在回调中,您可以访问request.env['omniauth.params']
来获取哈希值! :)
(从this answer复制)