node package manager
Easy sharing. Manage teams and permissions with one click. Create a free org ยป

facebook-signed-request

facebook signed request for node.js

node.js port of facebook-signeded-request. It implements the signed request sent by facebook to applications.

Installation and Usage

clone this repository and then

var SignedRequest = require(PATH_TO_LIB + '/lib/facebook-signed-request');
SignedRequest.secret = "your facebook application secret";
var request = yourRequestObjectParamsHash['signed_request'];
var signedRequest = new SignedRequest( request );

signedRequest.parse(function(errors, request){
  // check if request was valid
  console.log(request.isValid());

  // access errors
  console.log(errors);

  // this is your data object
  console.log(request.data);
});

You can also sign requests to be used in your tests

SignedRequest.secret = "897z956a2z7zzzzz5783z458zz3z7556";
SignedRequest.encodeAndSign({ user_id : '111111'})

which will output something in the format of

gI7hojzSUZyrEP6/kh7TRCI6PZ6VucX0bvbcKxj10HY.eyJ1c2VyX2lkIjoiMTExMTExMSJ9

Data sent by facebook

Here is an example

{
	algorithm: 'HMAC-SHA256',
	expires: 1308988800,
	issued_at: 1308985018,
	oauth_token: '111111111111111|2.AQBAttRlLVnwqNPZ.3600.1111111111.1-111111111111111|T49w3BqoZUegypru51Gra70hED8',
	user: { country: 'de', locale: 'en_US', age: { min: 21 } },
	user_id: '111111111111111'
}

Tests

npm install jasmine-node
jasmine-node spec