Node.js JSON-parsing-Fehler

Ich bin versucht, machen Sie eine Facebook-Anwendung mit node.js aber ich habe Probleme bei der Prüfung von signierten Anfragen. Jedes mal, wenn ich einen Antrag, das Programm wirft einen SyntaxError: Unexpected token ILLEGAL als solche:

undefined:1
":"721599476"}
              ^^
SyntaxError: Unexpected token ILLEGAL

Den Schuldigen Funktion ist unten:

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;
}

Nur für die Prüfung, eine gültige signed_request wäre

WGvK-mUKB_Utg0l8gSPvf6smzacp46977pTtcRx0puE.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImV4cGlyZXMiOjEyOTI4MjEyMDAsImlzc3VlZF9hdCI6MTI5MjgxNDgyMCwib2F1dGhfdG9rZW4iOiIxNTI1NDk2ODQ3NzczMDJ8Mi5ZV2NxV2k2T0k0U0h4Y2JwTWJRaDdBX18uMzYwMC4xMjkyODIxMjAwLTcyMTU5OTQ3NnxQaDRmb2t6S1IyamozQWlxVldqNXp2cTBmeFEiLCJ1c2VyIjp7ImxvY2FsZSI6ImVuX0dCIiwiY291bnRyeSI6ImF1In0sInVzZXJfaWQiOiI3MjE1OTk0NzYifQ

Warum bin ich immer diese Fehlermeldung, wenn es gültig ist JSON und einfach über einen statischen string mit JSON funktioniert Prima, und gibt es irgendwelche Tipps um dies zu beheben?

Dank.

encoded_data[1] = {"algorithm":"HMAC-SHA256","expires":1292821200,"issued_at":1292814820,"oauth_token":"152549684777302/2.YWcqWi6OI4SHxcbpMbQh7A__.3600.1292821200-721599476|Ph4fokzKR2jj3AiqVWj5zvq0fxQ","user":{"locale":"en_GB","country":"au"},"user_id":"721599476"}

InformationsquelleAutor Adam M-W | 2010-12-20

Schreibe einen Kommentar