[英]Change Engine routes for shopify_app gem
我正在将shopify_app gem与rails 5一起使用。我希望shopify_app从嵌套路由运行。 例如:/ shopify_app / login或'/ shopify_app / auth / shopify / callback'。
我尝试了gem文档中给出的解决方案,并将这些行放入我的route.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
以下是应用程序设置:
嵌入式App 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才能使其正常工作。
请提出一些解决方案,使我的应用程序路由正常运行。
编辑:如果尝试在其他浏览器中打开应用,则应用重定向到错误的登录页面。这是该错误的屏幕:
谢谢。
如果有人在寻找解决方案,那就是:我正在将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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.