【问题标题】:Shopify redirecting with missing params after OAuth UpgradeShopify 在 OAuth 升级后重定向缺少参数
【发布时间】:2014-01-21 22:15:45
【问题描述】:

升级到 OAuth 后,我仍然收到似乎是旧式身份验证样式的请求,或者至少它们似乎缺少我需要的参数。

通过安装或登录过程从我的应用程序开始是可以的。登录到 Shopify 后,他们将使用代码、商店、时间戳和签名参数重定向到 /finalize。我将它与 ruby​​ shopify_api gem 一起使用来请求一个令牌,我保存、验证会话并登录它们。这似乎符合the OAuth guide

但是,如果我先登录 Shopify 商店,转到应用程序,然后单击已安装应用程序的徽标,它会转到带有商店、签名和时间戳参数的 /finalize。缺少代码参数,我需要它来设置和验证 shopify 会话。这不是正确的做法吗?

我已经使用 Charles Proxy 检查了请求,我看不到其他神奇的请求标头。

我尝试按照 OAuth 指南的第 6 步进行操作,您在其中对这些参数进行 MD5 以获得与我在他们注册时保存的令牌相等的签名,但在这种情况下它们不匹配。

任何帮助将不胜感激。

FWIW 我使用的是 shopify_api gem 版本 3.1.8(rubygems.com 上的最新版本)、Rails 3.1.12,我的最终代码如下:

def finalize
    shop_domain = params[:shop]

    shopify_session = ShopifyAPI::Session.new shop_domain
    token = shopify_session.request_token(params[:code])

    # Reinitialize the shopify_session with the token
    shopify_session = ShopifyAPI::Session.new(shop_domain, token)
    ShopifyAPI::Base.activate_session(shopify_session)

    if shopify_session.valid?

      # Store their shopify creds so we can log in while they're offline
      shop = Shop.find_or_create_by_domain(shop_domain)
      shop.api_password = token

      # Do some more log in stuff and save the shop...

    else
      flash[:error] = "Could not log in to Shopify store."
      redirect_to 'login#index'
    end
end

请注意这是a repost of a topic on the Shopify forum,因为我没有运气在那里得到回复。

同时,当我收到 Shopify 的错误请求时,我要求用户重新从我的网站重新登录,这似乎有效。

【问题讨论】:

    标签: ruby-on-rails oauth shopify


    【解决方案1】:

    您应该在首次安装和返回登录时使用相同的 OAuth 流程。查看Rails App Shopify 提供的安装和登录使用相同的 OAuth 流程。因为您的范围没有改变,Shopify 不会显示授权页面并自动重定向到返回 URL。

    generate routesSessionsController 为例。

    【讨论】:

      猜你喜欢
      • 2021-03-08
      • 2021-01-15
      • 2014-05-31
      • 2015-09-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多