2013-01-03 66 views
3

我嘗試使用OAuth提供者在PHP(PECL包)一個apache的背後反向代理背後反向代理的Oauth提供商

客戶端使用

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

但我的OAuth提供者接收

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

簽名無法驗證所以請求失敗

你有什麼想法關於解決這個問題?

回答

3

我不得不這樣做一次。我最終修改了OAuth代碼,以傳遞供應商將收到的實際URL以及我需要從代理服務器後面發送的URL。前者用於簽名,後者用於HTTP請求。這是一個痛苦和無法移植(如果有的話在代理改變,代碼將停止工作)

0

我們有同樣的問題(不太複雜的地方我們反向代理正在改變HTTPS對HTTP網絡內部)。

您可以啓用負載平衡器(您正在使用反向代理等等)轉發適當的頭部方案(及以上)。

例如在Nginx的,你可以充分利用這兩種:

proxy_set_header X-Forwarded-Proto https; 

proxy_redirect .... ; 

這可能不是一個直接的上下文解決這個老問題,但我用了7小時試圖調試我們問題,所以我相信這會派上用場。