Ruby on rails 使用omniauth stripe connect时,在回调阶段request.env[“omniauth.params”]为空
我正在尝试使用omniauth stripe connect策略连接用户帐户,以便在购买过程中直接将资金转移到他们的帐户 我在初始值设定项中有以下内容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
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返回到另一个子域。由于会话不能跨子域维护(至少在我们的配置中是这样),因此参数信息不可用 在请求阶段和回调阶段重新处理流程以使用相同的子域解决了问题