首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >WSO2 API管理器3.2.0注册的回调与代理后面的customUrl不匹配

问WSO2 API管理器3.2.0注册的回调与代理后面的customUrl不匹配
EN

Stack Overflow用户
提问于 2020-11-18 15:52:06
回答 3查看 611关注 0票数 1

我面临的问题是,在按照here和here的说明更改主机名和配置反向代理,以及按照故障排除指南here解决“已注册的回调不匹配”之后,我无法获得任何进一步的回调。

正如你在下面看到的,如果我去https://example.com/publisher,我继续得到错误‘注册的回调不匹配’。

​

​

如果我检查授权请求查询,我可以看到redirect_url被设置为127.0.0.1,我怀疑这就是问题所在,因为当我将该url添加到服务提供者正则表达式回调中时,它可以正常工作,但这不适合非本地环境。

下面是请求查询(我怀疑主要问题所在--注意redirect_uri):https://example.com/oauth2/authorize?response_type=code&client_id=1obvNiUMBcJwMa3euoHjrsckuGIa&scope=apim:api_create%20apim:api_delete%20apim:api_import_export%20apim:api_product_import_export%20apim:api_publish%20apim:api_view%20apim:app_import_export%20apim:client_certificates_add%20apim:client_certificates_update%20apim:client_certificates_view%20apim:document_create%20apim:document_manage%20apim:ep_certificates_add%20apim:ep_certificates_update%20apim:ep_certificates_view%20apim:external_services_discover%20apim:mediation_policy_create%20apim:mediation_policy_manage%20apim:mediation_policy_view%20apim:pub_alert_manage%20apim:publisher_settings%20apim:shared_scope_manage%20apim:subscription_block%20apim:subscription_view%20apim:threat_protection_policy_create%20apim:threat_protection_policy_manage%20openid&state=/&redirect_uri=https://127.0.0.1/publisher/services/auth/callback/login

下面是我的deployment.toml的配置方式(我已经用example.com替换了我的实际域名):

​

​

​

​

​

​

​

​

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

​

下面是我的nginx conf:

​

​

EN

回答 3

Stack Overflow用户

发布于 2020-11-18 17:06:53

Stack Overflow用户

发布于 2020-11-20 14:16:03

此错误的原因归结为缺少X-Forwarded-For标头,我最终将settings.js中的forwardedHeader更改为主机,因为它是从代理服务器传递过来的。

​

​

票数 0
EN

Stack Overflow用户

发布于 2021-06-25 02:47:51

感谢你的详细问题"user3745065“。我遇到了你在这篇文章中描述的完全相同的问题,我想我已经解决了这个问题。

就像你提到的,问题出在forwardedHeader上,在你的情况下,你切换到了主机。

但是查看产品文档,他们提供的示例如下:

代码语言:javascript
复制
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。然而,值得一提的是:

代码语言:javascript
复制
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中删除端口号,否则在您的代理上将会遇到同样的问题。

这只是我的两分钱!;)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64889025

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档