{
  "name": "csrf-tokens",
  "description": "primary logic behind csrf tokens",
  "version": "1.0.4",
  "author": {
    "name": "Jonathan Ong",
    "email": "me@jongleberry.com",
    "url": "http://jongleberry.com"
  },
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "git://github.com/expressjs/csrf-tokens"
  },
  "dependencies": {
    "rndm": "1",
    "uid2": "~0.0.2",
    "scmp": "~0.0.3"
  },
  "devDependencies": {
    "mocha": "1"
  },
  "scripts": {
    "test": "mocha --reporter spec"
  },
  "readme": "\n# CSRF Tokens\n\nLogic behind CSRF token creation and verification.\nRead [Understanding-CSRF](http://www.jongleberry.com/understanding-csrf.html) for more information on CSRF.\nUse this module to create custom CSRF middleware and what not.\n\n## API\n\n```js\nvar tokens = require('csrf-tokens')(options)\n\nvar secret = tokens.secret()\nvar token = tokens.create(secret)\nvar valid = tokens.verify(secret, token)\n```\n\nOptions:\n\n- `secretLength: 24` - the byte length of the secret key\n- `saltLength: 8` - the string length of the salt\n- `tokensize: (secret, salt) => token` - a custom token creation function\n\n### var secret = tokens.secret()\n\nCreate a new `secret` of length `secretLength`.\nYou don't have to use this.\n\n### var token = tokens.token(secret)\n\nCreate a CSRF token based on a `secret`.\nThis is the token you pass to clients.\n\n### var valid = tokens.verify(secret, token)\n\nCheck whether a CSRF token is valid based on a `secret`.\nIf it's not valid, you should probably throw a `403` error.\n",
  "readmeFilename": "README.md",
  "bugs": {
    "url": "https://github.com/expressjs/csrf-tokens/issues"
  },
  "homepage": "https://github.com/expressjs/csrf-tokens",
  "_id": "csrf-tokens@1.0.4",
  "_shasum": "49672568b2703348644eacaf61cdbdc054ba56f2",
  "_from": "csrf-tokens@~1.0.2",
  "_resolved": "https://registry.npmjs.org/csrf-tokens/-/csrf-tokens-1.0.4.tgz"
}
