反向代理背后的Oauth提供商

时间:2013-01-03 15:49:06

标签: php oauth oauth-provider

我尝试在apache反向代理

后面的PHP(PECL包)中使用OAuth提供程序

客户使用

POST https://api.com/resource/oauth/request-token

但我的oauth提供商收到了

POST http://api.com/mywebservice/resource/oauth/request-token

无法验证签名,因此请求失败

您对解决此问题有任何想法吗?

2 个答案:

答案 0 :(得分:3)

我必须这样做一次。我最终修改了OAuth代码,以传递提供程序将收到的实际URL以及我需要从代理后面发送的URL。前者用于签名,后者用于HTTP请求。这是一种痛苦而且不可移植(如果代理中有任何改变,代码将停止工作)

答案 1 :(得分:0)

我们遇到了同样的问题(在我们的反向代理将HTTPS更改为网络内的HTTP的情况下,这种情况并不复杂。)

您可以启用负载均衡器(无论您使用什么作为反向代理)转发正确的标头方案(以及更多)。

例如在Nginx中你可以利用两者:

proxy_set_header X-Forwarded-Proto https;

proxy_redirect .... ;

这可能不是这个老问题的直接上下文解决方案,但我花了7个小时试图调试我们的问题所以我相信这对某人来说会派上用场。