我已在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']并被重定向到登录页面,因为当我们使用旧版身份验证机制时并非如此。< / p>
应用网址是www.orderlyprint-staging.herokuapp.com。您可以在测试商店中安装该应用程序,并尝试从测试商店的管理页面登录该应用程序。
答案 0 :(得分:6)
对于最初使用Shopify App gem构建的Shopify应用程序,以及从Legacy切换到oAuth2身份验证解决方案时,您需要将Shopify Admin链接指向authenticate操作而不是finalize操作。所以你需要:
转到Shopify合作伙伴管理员
按编辑应用程序详细信息
更新&#34;应用程序网址&#34;而是指向身份验证操作。例如: www.orderlyprint-staging.herokuapp.com/login/authenticate
然后,这将提取Shopify发送的商店参数,并执行oAuth身份验证的初始步骤,然后重定向到完成操作以完成。然后,这将自动登录用户,而无需他们手动输入他们的商店URL。