Facebook Connect:间歇性:签名错误的JSON签名
我正在使用Facebook connect。超过50%的注册获得了“错误的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
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%在野外,但当我测试它时,我有时会得到这个错误,有时不会。也有一些已知的个人报告说他们没有入侵这个网站。好的,只是检查一下。我遇到过无法收到签名请求的情况。看:你可以试着看看这个