我正在嘗試使用node.js製作Facebook應用程序,但是我在檢查簽名請求時遇到了麻煩。每次我提出一個要求,程序拋出一個語法錯誤:意外的令牌非法這樣:Node.js JSON解析錯誤
undefined:1
":"721599476"}
^^
SyntaxError: Unexpected token ILLEGAL
罪魁禍首功能如下:
function parse_signed_request(signed_request, secret) {
encoded_data = signed_request.split('.',2);
// decode the data
sig = encoded_data[0];
json = base64url.decode(encoded_data[1]);
data = JSON.parse(json); // ERROR Occurs Here!
// check algorithm - not relevant to error
if (!data.algorithm || data.algorithm.toUpperCase() != 'HMAC-SHA256') {
console.error('Unknown algorithm. Expected HMAC-SHA256');
return null;
}
// check sig - not relevant to error
expected_sig = crypto.createHmac('sha256',secret).update(encoded_data[1]).digest('base64').replace(/\+/g,'-').replace(/\//g,'_').replace('=','');
if (sig !== expected_sig) {
console.error('Bad signed JSON Signature!');
return null;
}
return data;
}
只是用於測試,有效signed_request會
WGvK-mUKB_Utg0l8gSPvf6smzacp46977pTtcRx0puE.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImV4cGlyZXMiOjEyOTI4MjEyMDAsImlzc3VlZF9hdCI6MTI5MjgxNDgyMCwib2F1dGhfdG9rZW4iOiIxNTI1NDk2ODQ3NzczMDJ8Mi5ZV2NxV2k2T0k0U0h4Y2JwTWJRaDdBX18uMzYwMC4xMjkyODIxMjAwLTcyMTU5OTQ3NnxQaDRmb2t6S1IyamozQWlxVldqNXp2cTBmeFEiLCJ1c2VyIjp7ImxvY2FsZSI6ImVuX0dCIiwiY291bnRyeSI6ImF1In0sInVzZXJfaWQiOiI3MjE1OTk0NzYifQ
爲什麼我得到這個錯誤,當它是有效的JSON和簡單地使用JSON的靜態字符串將正常工作,並在那裏任何提示來解決這個問題?
謝謝。
encoded_data [1] = { 「算法」: 「HMAC-SHA256」, 「過期」:1292821200, 「issued_at」:1292814820, 「組oauth_token」: 「152549684777302 | 2.YWcqWi6OI4SHxcbpMbQh7A __ 3600.1292821200-721599476 | Ph4fokzKR2jj3AiqVWj5zvq0fxQ」,」 user「:{」locale「:」en_GB「,」country「:」au「},」user_id「:」721599476「} – Jason 2010-12-20 03:25:33