2011-12-01 142 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的帖子请求。