首页 文章

在OAuth升级后,使用缺少的参数重定向以重定向

提问于
浏览
0

升级到OAuth后,我仍然收到似乎是旧版本的请求,或者至少它们似乎缺少我需要的参数 .

从我的应用程序到安装或登录过程都很好 . 登录Shopify后,他们将被重定向到/ finalize,包含代码,商店,时间戳和签名参数 . 我使用ruby shopify_api gem来请求一个令牌,我保存,验证会话,然后登录 . 这似乎与the OAuth guide一致 .

但是,如果我首先登录Shopify商店,请转到应用程序,然后单击已安装应用程序的徽标,它将进入/最终确定商店,签名和时间戳参数 . 缺少代码参数,我需要它来设置和验证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收到错误请求的同时,我要求用户再次从我的网站登录,这似乎有效 .

1 回答

  • 0

    您应该使用相同的OAuth进程进行首次安装并返回登录 . 看看_z74711_ Shopify提供的安装和登录使用相同的OAuth流程 . 由于您更改了,Shopify将不会显示授权页面并自动重定向到返回URL .

    看一下generate routesSessionsController的例子 .

相关问题