Ruby on rails Facebook返回的是随机字符串,而不是";“国家”;param

Ruby on rails Facebook返回的是随机字符串,而不是";“国家”;param,ruby-on-rails,facebook,gem,omniauth,Ruby On Rails,Facebook,Gem,Omniauth,我正在Rails应用程序中使用Omniauth for Facebook connect。FacebookAuth连接正确,但“state”参数(我应该能够通过它在回调时传递数据以检索)返回一个我无法破译的字符串 例如,通过“/auth/facebook?display=popup&state=19422”进行授权 最终返回“ECAE4F44FB248944083DB0623C9A86F3F75DFF36006BE7E”状态 知道为什么会发生这种情况吗?不应该使用状态参数来传递数据。该参数仅用于

我正在Rails应用程序中使用Omniauth for Facebook connect。FacebookAuth连接正确,但“state”参数(我应该能够通过它在回调时传递数据以检索)返回一个我无法破译的字符串

例如,通过“/auth/facebook?display=popup&state=19422”进行授权

最终返回“ECAE4F44FB248944083DB0623C9A86F3F75DFF36006BE7E”状态


知道为什么会发生这种情况吗?

不应该使用
状态
参数来传递数据。该参数仅用于停止。该随机生成的字符串正在后台使用,以防止这些类型的攻击

只需使用任何其他参数,即可传递自定义数据。OmniAuth已经足够友好,可以在会话中保留您在请求中可能发送的任何额外参数

因此,与其使用

request_url?state=data
和它一起

data = params[:state]
你可以把它传给我

request_url?whatever=data
然后带上它

data = request.env['omniauth.params']['whatever']
您甚至可以省略该请求,并通过以下方式获取数据:

data = env['omniauth.params']['whatever']