Ruby on rails 使用omniauth stripe connect时,在回调阶段request.env[“omniauth.params”]为空

Ruby on rails 使用omniauth stripe connect时,在回调阶段request.env[“omniauth.params”]为空,ruby-on-rails,omniauth,stripe-connect,Ruby On Rails,Omniauth,Stripe Connect,我正在尝试使用omniauth stripe connect策略连接用户帐户,以便在购买过程中直接将资金转移到他们的帐户 我在初始值设定项中有以下内容 Rails.application.config.middleware.use OmniAuth::Builder do provider :stripe_connect, APP_CONFIG[:stripe_connect_client_id], APP_CONFIG[:stripe_secr

我正在尝试使用omniauth stripe connect策略连接用户帐户,以便在购买过程中直接将资金转移到他们的帐户

我在初始值设定项中有以下内容

Rails.application.config.middleware.use OmniAuth::Builder do
 provider :stripe_connect, APP_CONFIG[:stripe_connect_client_id],
                        APP_CONFIG[:stripe_secret_key],
                        scope: 'read_write',
                        stripe_landing: 'register'

 on_failure  { |env| AuthController.action(:failure).call(env) }
end
在身份验证控制器中执行以下操作

def stripe_connect
  result = request.env["omniauth.auth"]
  pass_through_params = request.env["omniauth.params"]
...
  # do some stuff
end
我用

http://test.lvh.me:3000/auth/stripe_connect?user_id=980190962&user_subdomain=test
在回调期间,request.env[omniauth.auth]具有正确的值,但request.env[omniauth.params]始终为{}。request.env[omniauth.origin]也是零


我已经在facebook oauth集成的其他情况下实现了这一点。不知道为什么这些值没有按预期返回

问题完全与oauth如何设置参数值有关。这是通过存储在会话上的值来管理的。我原以为这些值被转发到本例中的身份验证服务,并由该服务返回

相反,它们在调用之前被放置在会话中,并在回调阶段被附加到oauth值中

我的问题与我对子域的使用有关。我在一个子域上发起请求,并将回调url返回到另一个子域。由于会话不能跨子域维护(至少在我们的配置中是这样),因此参数信息不可用

在请求阶段和回调阶段重新处理流程以使用相同的子域解决了问题