Skip to content
This repository has been archived by the owner on Mar 3, 2023. It is now read-only.

jed/cookie-node

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cookie-node.js

NOTE: This library has been deprecated.

Please use Cookies instead. Not only is it built on the latest version of node.js without any cruft from older versions, but the signing mechanism has been factored out into Keygrip, a more flexible and performant library.

cookie-node is a cookie module for node.js, based loosely on Tornado's approach to signed cookies.

To start, require the library in your app:

var cookie = require( "./cookie-node" );

This extends the ServerRequest and ServerResponse objects, allowing you to get cookies on requests and set them on responses for server calls:

function( req, res ) {
  var name = req.getCookie( "name" ),
      length = name.length;

  res.setCookie( "name_length", length );

  res.writeHead(200, {"Content-Type": "text/html"});	
  res.write( "Your name has " + length + " characters." );	
  res.close();
}

You can also set a cookie secret to enable signed cookies, and prevent forged cookies:

cookie.secret = "myRandomSecretThatNoOneWillGuess";

so that the above becomes:

function( req, res ) {
  var name = req.getSecureCookie( "name" ),
      length = name.length;

  res.setSecureCookie( "name_length", length );

  res.writeHead(200, {"Content-Type": "text/html"});	
  res.write( "Your name has " + length + " characters." );	
  res.close();
}

(You don't need to set the secret, but your cookies will end up being invalidated when the server restarts, and you will be yelled at.)

When you set a secure cookie, the value is stored alongside its expiration date, as well as an HMAC SHA-1 digest of the two values with your secret. If a cookie's signature does not match that calculated on the server, the getSecureCookie method throws.

If you'd like to clear a cookie, just use res.clearCookie( name ).

That's about it. Send any questions or comments here.

About

signed cookie functionality for node.js

Resources

License

Stars

Watchers

Forks

Packages

No packages published