2011-12-01 137 views
3

我有一個FB的應用程序,當我因爲不授權回調URL進入我的發展框地址,框ping通與應用程序取消對FB後,這個請求:Facebook的解除授權回調不叫

POST /facebook/deauthorize HTTP/1.1 
Host: bashman.org 
Accept: */* 
Content-Length: 261 
Content-Type: application/x-www-form-urlencoded 
Connection: close 

fb_sig_uninstall=1&fb_sig_locale=de_DE&fb_sig_in_new_facebook=1&fb_sig_time=1322732591.2685&fb_sig_added=0&fb_sig_user=1476224117&fb_sig_country=de&fb_sig_api_key=e39a74891fd234bb2575bab75e8f&fb_sig_app_id=32352348363&fb_sig=f6bbb27324aedf337e5f0059c4971 

(該鑰匙在這裏是假的)

但是!當我在取消授權回調URL中輸入我的生產箱URL時,POST請求永遠不會生成。使用Tcpdump進行測試。我的生產機器沒有要求,爲什麼?

我用mtr檢查從我的生產箱到請求來自的IP地址的路由,一切正常,0%包丟失。

主機名端口和路徑是正確的,測試它1k次,沒有防火牆,IDS或其他系統阻塞我的以太網插槽。

  1. 爲什麼Post回調不被調用? (我該如何解決它?)

  2. 我該如何調試以確定問題是什麼?

+0

你能手動到達生產回調網址嗎?即。在瀏覽器中? – Lix

+0

是的,在同一臺機器上的槽形捲曲,來自其他機器的捲曲/瀏覽器 – astropanic

+0

使用[此工具](https://developers.facebook.com/tools/debug)時,你會得到什麼? – Lix

回答

4

您可以嘗試使用facebook URL Debugger,看看Facebook的服務器都能夠達到您的回調網址...
查看信息,Facebook是能夠檢索可以幫助你調試這個問題。

+0

完美,非常感謝:) – astropanic

0

我有同樣的問題與NGINX和調試的時間後,我發現在NGINX documentation此解決方案:

有些瀏覽器可能會抱怨由著名 認證機構簽署的證書,而其他瀏覽器可以接受沒有問題的證書 。發生這種情況的原因是,頒發機構已使用中間證書籤署了 服務器證書,該中間證書不是 ,該證書存在於與特定瀏覽器一起分發的知名可信證書 權限的證書庫中。在這個 的情況下,授權提供了一串連接的證書,其中 應該連接到簽名的服務器證書。

$ cat www.example.com.crt bundle.crt > www.example.com.chained.crt 

產生的文件應在ssl_certificate指令來使用::服務器 證書必須與 合併文件中的鏈接證書之前出現

server { 
    listen    443 ssl; 
    server_name   www.example.com; 
    ssl_certificate  www.example.com.chained.crt; 
    ssl_certificate_key www.example.com.key; 
    ... 
} 

總之,你只需要連接證書和綁定並將結果用作您的ssl_certificate。

我現在收到來自Facebook的帖子請求。