问题描述
我已经使用ngrok建立了一个隧道。我这样做主要是为了能够在开发和测试期间在本地计算机上运行时,通过Webhooks从我们的服务器集成的服务中获取回调。
我保留了一个域,例如:
123.ngrok.io
当我在本地运行服务器时,隧道已建立,我可以通过浏览器访问123.ngrok.io
来访问它,但是,当我这样做时,浏览器要求我进行身份验证:
我的问题是这个
是否需要调用Webhooks到123.ngrok.io的服务进行身份验证?如果是这样,我不知道该如何做。
最终,我需要Webhooks像实时播放时一样运行,不需要身份验证。
由于身份验证,ngrok会阻止来自各种服务的Webhooks呼叫吗?
更新:
我已经测试了Webhooks是否打入了我的保留的ngrok域,例如123.ngrok.io
。触发在该域中命中该Webhook的服务,但返回401 Unauthorized
。
似乎ngrok不允许Webhook通过。我该如何解决?
解决方法
因此,当服务尝试通过在ngrok的connect调用中注释掉auth行时,尝试摆脱保留域时的401错误:
const result = await ngrok.connect({
proto: 'http',addr: PORT,// auth: `${process.env.NGROK_USER}:${process.env.NGROK_PSW}`,subdomain: '123' // reserved tunnel name 123.ngrok.io
})
这解决了我的问题。