Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Facebook Connect:间歇性:签名错误的JSON签名_Facebook_Json_Connect_Signature_Signed - Fatal编程技术网

Facebook Connect:间歇性:签名错误的JSON签名

Facebook Connect:间歇性:签名错误的JSON签名,facebook,json,connect,signature,signed,Facebook,Json,Connect,Signature,Signed,我正在使用Facebook connect。超过50%的注册获得了“错误的JSON签名”。错误。导致此问题的原因是什么?如何解决 代码如下: function parse_signed_request($signed_request, $secret) { list($encoded_sig, $payload) = explode('.', $signed_request, 2); // decode the data $sig = base64_url_decod

我正在使用Facebook connect。超过50%的注册获得了“错误的JSON签名”。错误。导致此问题的原因是什么?如何解决

代码如下:

function parse_signed_request($signed_request, $secret) {
    list($encoded_sig, $payload) = explode('.', $signed_request, 2); 

    // decode the data
    $sig = base64_url_decode($encoded_sig);
    $data = json_decode(base64_url_decode($payload), true);

    if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
        error_log('Unknown algorithm. Expected HMAC-SHA256');
        header('location: /volunteerregistration?error=Facebook has failed to connect. Unknown algorithm. Expected HMAC-SHA256 Please register with Omprakash below. ');
        exit;
    }

    // check sig
    $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
    if ($sig !== $expected_sig) {
        error_log('Bad Signed JSON signature!');
        header('location: /volunteerregistration?error=Facebook has failed to connect. Bad Signed JSON signature. Please register with Omprakash below.');
        exit;
    }

    return $data;
} 

谢谢大家!

50%的注册是通过已知的好账户进行的……还是50%的野生网站注册?如果它是在野外,我会认为它是失败的黑客尝试…试图找到没有额外的
$sig!==$预期\u sig
检查您的安全站点:

通过检查api的给定应用程序机密,解决了相同的问题。我复制了一个不可见的符号/字符

我认为这可能是因为您的apache服务器不支持CURL库。
打开你的php.ini,找到“extension=php_curl.dll”,然后删除“;”这意味着你的php curl没有注释。

它的50%在野外,但当我测试它时,我有时会得到这个错误,有时不会。也有一些已知的个人报告说他们没有入侵这个网站。好的,只是检查一下。我遇到过无法收到签名请求的情况。看:你可以试着看看这个