升级到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 回答
您应该使用相同的OAuth进程进行首次安装并返回登录 . 看看_z74711_ Shopify提供的安装和登录使用相同的OAuth流程 . 由于您更改了,Shopify将不会显示授权页面并自动重定向到返回URL .
看一下generate routes和SessionsController的例子 .