OmniAuth.config.full_host 的多个值
Multiple values for OmniAuth.config.full_host
我正在尝试在我的 SaaS 平台上使用 Stripe 和 LinkedIn 策略配置 Omniauth 和 Devise。
作为平台的一部分,每个客户端都可以拥有自己独特的域。
我可以让 LinkedIn 在我的客户网站上工作,但 Stripe 要求您在他们的管理界面中列出所有回调 URL 可能性。为了解决这个问题,我通过 OmniAuth.config.full_host
将 www.myapp.com 设置为回调 url 但这意味着我有一个静态回调 url,然后通过 state
参数.
这适用于 Stripe,但随后 LinkedIn 开始失败,因为回调域不再匹配原始请求。
有没有办法为某些策略(即仅 Stripe)设置 OmniAuth.config.full_host
?
config/initializers/omniauth.rb
OmniAuth.config.full_host = lambda do |env|
if env['omniauth.strategy'].is_a?(OmniAuth::Strategies::Stripe)
#return url for stripe
else
#return url for others
end
end
另一种选择可能是覆盖 OmniAuth::Stragies::Stripe#callback_url
。
#config/initializers/stripe.rb
module OmniAuth
module Strategies
class Stripe
def full_host
#return url for stripe
end
end
end
end
原始OmniAuth::Strategy#full_host
方法将用于其他策略。
我正在尝试在我的 SaaS 平台上使用 Stripe 和 LinkedIn 策略配置 Omniauth 和 Devise。
作为平台的一部分,每个客户端都可以拥有自己独特的域。
我可以让 LinkedIn 在我的客户网站上工作,但 Stripe 要求您在他们的管理界面中列出所有回调 URL 可能性。为了解决这个问题,我通过 OmniAuth.config.full_host
将 www.myapp.com 设置为回调 url 但这意味着我有一个静态回调 url,然后通过 state
参数.
这适用于 Stripe,但随后 LinkedIn 开始失败,因为回调域不再匹配原始请求。
有没有办法为某些策略(即仅 Stripe)设置 OmniAuth.config.full_host
?
config/initializers/omniauth.rb
OmniAuth.config.full_host = lambda do |env|
if env['omniauth.strategy'].is_a?(OmniAuth::Strategies::Stripe)
#return url for stripe
else
#return url for others
end
end
另一种选择可能是覆盖 OmniAuth::Stragies::Stripe#callback_url
。
#config/initializers/stripe.rb
module OmniAuth
module Strategies
class Stripe
def full_host
#return url for stripe
end
end
end
end
原始OmniAuth::Strategy#full_host
方法将用于其他策略。