作者:明天会更好--好过_652 | 来源:互联网 | 2023-02-13 21:50
我使用docker作为我的本地开发环境,并使用dinghy-http-proxy
添加新TLD .docker
来将请求映射到nginx-proxy
容器.
我的网站通常通过http://devel.domain.com.docker等URL 访问.
我想在访问远程webhook时使用ngrok进行本地开发.
我用命令成功启动了ngrok:
ngrok http -host-header=rewrite devel.domain.com.docker 80
我可以通过地址http://randomsubdomain.ngrok.io访问我的Web应用程序的登录表单.
但是,我无法登录,因为看起来无法设置COOKIE会话.
实际上,尝试为域设置COOKIE会话,devel.domain.com.docker
但是由于我们randomsubdomain.ngrok.io
在浏览器中使用它们,出于安全原因它们被阻止.
我该如何绕过这个问题?我在配置中遗漏了什么吗?ngrok是否是我想要实现的目标的合适工具?
1> mperrin..:
直接询问ngrok.io
支持并得到这个答案:
不,你没有遗漏任何东西,这只是重写主机头的一个不幸的副作用.主机头重写仅适用于某些应用程序,因为这样的复杂性(以及其他涉及Javascript和跨源的等).如果可能,重新配置您的网站以接受ngrok.io主机标头总是好得多.
但是,我通过检查请求是否包含x-original-host
域的头部来找到解决方案ngrok.io
,然后我改变会话机制(在PHP中session_set_COOKIE_params
)以使用x-original-host
域.
更多见解:我最终遇到了更多麻烦,并且意识到它在Chrome浏览器中不起作用,但确实在Firefox中有效!我向Ngrok询问了这个问题,Alan说道:"是的,我认为这是一个镀铬安全设置吗?但是我从来没有找到合适的标志来关闭它.使它在chrome中工作的正确方法是改变:domain = .ngrok.io到domain = mydomain.ngrok.io - 我意识到我正在使用Rails并且我有一个选项域:所有在我的COOKIE设置中.我在开发环境中删除了它,它现在完美运行!