我面临的问题是,在按照here和here的说明更改主机名和配置反向代理,以及按照故障排除指南here解决“已注册的回调不匹配”之后,我无法获得任何进一步的回调。
正如你在下面看到的,如果我去https://example.com/publisher,我继续得到错误‘注册的回调不匹配’。

如果我检查授权请求查询,我可以看到redirect_url被设置为127.0.0.1,我怀疑这就是问题所在,因为当我将该url添加到服务提供者正则表达式回调中时,它可以正常工作,但这不适合非本地环境。
下面是我的deployment.toml的配置方式(我已经用example.com替换了我的实际域名):





下面是我的settings.js:我按照github issue中的建议添加了reverseProxy属性

下面是我的nginx conf:

发布于 2020-11-18 17:06:53
发布于 2020-11-20 14:16:03
此错误的原因归结为缺少X-Forwarded-For标头,我最终将settings.js中的forwardedHeader更改为主机,因为它是从代理服务器传递过来的。

发布于 2021-06-25 02:47:51
感谢你的详细问题"user3745065“。我遇到了你在这篇文章中描述的完全相同的问题,我想我已经解决了这个问题。
就像你提到的,问题出在forwardedHeader上,在你的情况下,你切换到了主机。
但是查看产品文档,他们提供的示例如下:
customUrl: { // Dynamically set the redirect origin according to the forwardedHeader host|proxyPort combination
enabled: true,
forwardedHeader: 'X-Forwarded-Host',
},我花了一段时间才注意到forwardedHeader应该是“X-Forwarded-Host”,而不是“X-Forwarded-For”,因为它是默认的。
在更改主机名(here)的文档中,我几乎没有什么需要调整的内容,我必须从devportal中删除端口变量${mgt.transport.https.port}。安装步骤5中也概述了这一点,here。然而,值得一提的是:
from:
[apim.devportal]
url = "https://{Your Domain}:${mgt.transport.https.port}/devportal"
to
url = "https://{Your Domain}/devportal"否则,当它尝试重定向到门户(例如,从发布者)时,它会使用端口号构造url,并且默认端口9443将不会在您的代理(使用文档here中提供的设置在nginx上测试)上工作,该代理正在侦听和期待端口443上的调用。
我注意到你配置了一些东西,但可能不是必须的:
最后但并非最不重要的一点是,在"Troubleshooting 'Registered callback does not match with the provided url' error“之后,您需要再次从url中删除端口号,否则在您的代理上将会遇到同样的问题。
这只是我的两分钱!;)
https://stackoverflow.com/questions/64889025
复制相似问题