5

我已在 Shopify 应用上从旧版身份验证切换到 oauth2 身份验证。现在,每当我从商店管理页面(我的应用程序 -> 应用程序)访问应用程序时,它总是将我重定向到登录页面,而不是直接将商店登录到应用程序(就像以前那样)。

下面是 finalize 方法中的代码。

if response = request.env['omniauth.auth']
  sess = ShopifyAPI::Session.new(params['shop'], response['credentials']['token'])
  ShopifyAPI::Base.activate_session(sess)
  session[:shopify] = sess
  flash[:notice] = "Logged in"
  redirect_to return_address
  session[:return_to] = nil
else
  flash[:error] = "Could not log in to Shopify store."
  redirect_to :action => 'index'
end

当用户从商店管理页面访问应用程序时,请求中没有 request.env['omniauth.auth'] 并被重定向到登录页面,而当我们有旧的身份验证机制时情况并非如此。

应用网址是 www.orderlyprint-staging.herokuapp.com。您可以在测试商店中安装应用程序并尝试从测试商店的管理页面登录应用程序。

4

1 回答 1

6

对于最初使用 Shopify 应用程序 gem 构建的 Shopify 应用程序,并且在从旧版切换到 oAuth2 身份验证解决方案时,您需要将 Shopify 管理员链接指向身份验证操作而不是完成操作。所以你需要:

转到 Shopify 合作伙伴管理员

按编辑应用程序详细信息

更新“应用程序 URL”以指向身份验证操作。例如:www.orderlyprint-staging.herokuapp.com/login/authenticate

然后,这将提取 Shopify 发送的 shop 参数,并执行 oAuth 身份验证的初始步骤,然后重定向到 finalize 操作以完成。然后,这将自动登录用户,而无需他们手动输入他们的商店 URL。

于 2012-08-30T09:14:02.957 回答