使用 docker 进行本地 shopify 应用程序开发:无法验证请求来源

local shopify app development with docker: Request origin could not be verified

所以我有一个 dockerized shopify 应用程序 (Node / React),我想改进它。当然,我希望能够在本地进行更改并在将它们发布到舞台环境之前在我的本地环境中进行测试。

我几乎完成了设置 运行,但是一旦我在 shopify 开发商店中安装本地 运行 应用程序,我就收到错误消息:Request origin could not be verified

原因可能是回调 url,它是:https://shopify-app.local/auth/callback?... 而不是 ngrok-url。

在我的 ngrok.conf 中,我将 host_header 设置为 shopify-app.local:

web_addr: 0.0.0.0:4040
region: eu
authtoken: [MY_TOKEN]
log: stdout
tunnels:
  shopify-app:
    proto: http
    addr: https://shopify-app.local
    host_header: shopify-app.local

(这对于代理正确分配流量来说是必要的,并且该部分确实有效 - 我的应用程序接收传入流量)。

所以我想我在这里缺少的是在对 ngrok-generated url 的响应中设置适当的 host-header。但是我应该在哪里以及如何做呢?

我正在使用臭名昭著的 jwilder/nginx-proxy

为了更好地理解,我的设置如下所示:

万一有人偶然发现了这个问题,解决方案很简单,只需将 add_header Host [ngrok-address] always; 添加到相应服务的 nginx 配置中的 location 指令即可。

我通过在我的项目文件夹中创建一个文件 /nginx/vhost.d/[vhost-name]_location 来管理它,使用 docker-compose.yml 将此文件夹作为卷安装到代理并向其中添加前面提到的行。一旦使用 docker-compose

启动,该文件就会被代理拾取

有关详细信息,请参阅 jwilder-nginx Documentation and nginx-documentation