ruby-on-rails - 更改 shopify_app gem 的引擎路由

标签 ruby-on-rails routes shopify

我正在使用shopify_app gem with Rails 5。我希望 shopify_app 从嵌套路线工作。例如:/shopify_app/login 或“/shopify_app/auth/shopify/callback”。

我尝试了gem文档中给出的解决方案,并将这些行放入我的routes.rb文件中:

mount ShopifyApp::Engine, at: 'shopify_app'  
get '/shopify_app' => 'settings#index'

Routes for shopify_app root Routes for shopify_app engine

但事实并非如此。因此,我在谷歌上搜索并找到了一个解决方案,通过在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 应该是 https://salebait.com/shopify_app/login 。 然后我必须手动点击应用程序的登录 URL 才能使其正常工作。

请提出一些解决方案,使我的应用程序路由顺利工作。

编辑:如果尝试在其他浏览器中打开应用程序,应用程序将重定向到错误的登录页面。以下是错误屏幕: enter image description here

谢谢。

最佳答案

如果其他人正在寻找解决方案,这里是: 我将 shopify_app 引擎安装在“/shopify_app”命名空间下。但它是 gem 的默认命名空间,因此它不会覆盖默认路由。

因此,我将 shopify_app 命名空间更改为“/app”,并且工作顺利。

mount ShopifyApp::Engine, at: 'app'  
get '/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: '/app/auth/shopify/callback'
end

关于ruby-on-rails - 更改 shopify_app gem 的引擎路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44469677/

相关文章:

ruby-on-rails - 登录页面中的 "Remember Me"复选框实际上有什么作用?

ruby-on-rails - 默认绑定(bind) rails server 到 127.0.0.1

ruby-on-rails - 通过Tire gem进行Elasticsearch版本控制

javascript - 如何通过vue js中的slug(也存在于json文件中)从我的json文件中获取文章内容?

node.js - Angular2嵌套路由不起作用,没有报告错误,但空白页

ruby-on-rails-3 - RoutingError 与 RSpec Controller 对作用域路由进行测试

html - 将产品集合与 Shopify 中的静态元素一起输出到表格中

ruby-on-rails - 即使在捆绑安装后 Rails Server 也会退出

php - 我有一个 shopify 商店,我希望能够看到我的库存何时售罄?

shopify - shopify polaris css组件如何使用?