shopify_api如何使用设计

时间:2015-12-04 02:06:54

标签: ruby-on-rails ruby devise omniauth shopify

我正在设计一个shopify应用程序,使客户可以通过手机购买产品。该方案是客户需要能够使用omniauth注册,然后他们可以从应用程序获取产品信息。但是,在任何客户从商店获取产品信息之前,我的shopify应用程序应首先使用omniauth与店主进行身份验证。

现在的问题是设计将修改omniauth默认身份验证策略。如果我使用shopify_api,我通过路径auth / shopify认证,它可以在没有设计安装的情况下工作。如果安装了devise,它会将auth / shopify重定向到omniauth / shopify。我发现这条路径是由设计生成的。如何跳过设计并使用原始的omniauth路径?谢谢。

1 个答案:

答案 0 :(得分:0)

Devsie a good tutorial介绍了如何将omniauthable从您的设计模型中分离出来。这将允许您配置自己的omniauth设置。

config/initializers/omniauth.rb中的两个提供商设置提供商并从devise.omniauth删除conifg/initializers/devise.rb后,您需要设置路由以处理来自devise_scope :user do get "/auth/:action/callback", to: 'users/omniauth_callbacks', constraints: { action: /facebook/ } end get 'auth/:action/callback' => 'another_controller', constraints: { action: /shopify/ } # connections 的响应OAuth不同。

<强>的routes.rb

class AnotherController
  def shopify
    auth_hash = request.env['omniauth.auth']

    shop = auth_hash[:uid]
    token = auth_hash[:credentials][:token]

    ShopifyAPI::Session.temp("#{shop}.myshopify.com", token) do
      current_shop = ShopifyAPI::Shop.current
      ...
    end
  end
end

然后在 another_controller.rb

ToString()

希望这有帮助。