【发布时间】:2017-06-10 04:53:57
【问题描述】:
我正在使用带有 rails 5 的 shopify_app gem。我希望 shopify_app 从嵌套路由中工作。例如:/shopify_app/login 或 '/shopify_app/auth/shopify/callback'。
我尝试了 gem 文档中给出的解决方案,并将这些行放在我的 routes.rb 文件中:
mount ShopifyApp::Engine, at: 'shopify_app'
get '/shopify_app' => 'settings#index'
但它并没有以这种方式工作。所以我四处搜索并找到了一个解决方案,通过在omniauth初始化程序中进行一些更改来使其工作。
Rails.application.config.middleware.use OmniAuth::Builder do
provider :shopify, ShopifyApp.configuration.api_key, ShopifyApp.configuration.secret, scope: ShopifyApp.configuration.scope, callback_path: '/shopify_app/auth/shopify/callback'
end
以下是应用设置:
嵌入式应用 SDK:已启用
应用网址:https://salebait.com/settings
列入白名单的重定向网址:https://salebait.com/shopify_app/auth/shopify/callback
现在的问题是,当我第一次安装我的应用程序时,它会在安装后重定向到我网站的主页 (https://salebait.com),但它应该在商店管理员中打开 https://salebait.com/settings 页面。如果我关闭浏览器或从商店注销并再次返回应用程序,它会转到 https://salebait.com/login 这不是一个有效页面,因为所有应用程序路由都包含在 /shopify_app/ 中,因此应用程序的登录 URL 应该是 @ 987654329@。 然后我必须手动点击应用程序的登录 URL 才能使其工作。
请提出一些解决方案,使我的应用程序路由顺利运行。
编辑:如果尝试在另一个浏览器中打开应用程序,应用程序将重定向到错误的登录页面。这是错误屏幕:
谢谢。
【问题讨论】:
-
对我来说效果很好。该应用程序根据您提供的 URL 正确安装和重定向。但是,您的应用程序中存在错误,假设存在一些实际上不存在的资产。那里有一些防御性编码,你可能会参加比赛。 sale_bait_common_elems_asset = ShopifyAPI::Asset.find('sn-ps/sale_bait_common_elems.liquid', :params => {:theme_id => shop.active_theme})
-
嗨@DavidLazar,当您安装该应用程序时,它是否将您重定向到shopify 商店管理员并向您显示应用程序设置?还是只发给salebait.com?退出后可以重试吗?
-
正如我所提到的。流量一切正常。发生的唯一错误是您在应用程序中做出的假设,即查找的资源会存在。如果不存在,则您未能捕获 404 异常,因此事情爆炸了。
-
嗨@DavidLazar,很抱歉再次打扰您。请问您可以尝试重新安装应用程序吗?我现在已经删除了 404 错误。所以再一次,问题是,应用程序安装得很好,但是当我在另一个浏览器中打开我的商店并尝试访问该应用程序时,它重定向到错误页面。添加有问题的错误屏幕。谢谢你的帮助!!
标签: ruby-on-rails routes shopify