{"_id":"csrf-tokens","_rev":"18-2ae4a1d89a9cc2d0f9c5b12098db1c66","name":"csrf-tokens","description":"primary logic behind csrf tokens","dist-tags":{"latest":"2.0.0"},"versions":{"1.0.0":{"name":"csrf-tokens","description":"primary logic behind csrf tokens","version":"1.0.0","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"},"devDependencies":{"mocha":"1"},"scripts":{"test":"mocha --reporter spec"},"bugs":{"url":"https://github.com/expressjs/csrf-tokens/issues"},"homepage":"https://github.com/expressjs/csrf-tokens","_id":"csrf-tokens@1.0.0","_shasum":"2dd7d67afbda568428d5ac8a31f43c42ce62cc92","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"maintainers":[{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"dist":{"shasum":"2dd7d67afbda568428d5ac8a31f43c42ce62cc92","tarball":"https://registry.npmjs.org/csrf-tokens/-/csrf-tokens-1.0.0.tgz","integrity":"sha512-SWgGH+w00YcPtWRjpbMiLiWPrsCXTd1Mk+/lkzyOudV/fdsaePYhTYU/8gMbI6FfJu0TKtMTwUt76b69jfwwWg==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDdn9ucJRHJsJ0W2c7KArzPGRma+/ZYioXBZeyHSVGFaQIhAN9Nmqy65oAUZ48vsHVHeI1xlfUUq17ZCvtttEOaduu1"}]}},"1.0.1":{"name":"csrf-tokens","description":"primary logic behind csrf tokens","version":"1.0.1","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"},"bugs":{"url":"https://github.com/expressjs/csrf-tokens/issues"},"homepage":"https://github.com/expressjs/csrf-tokens","_id":"csrf-tokens@1.0.1","_shasum":"e32809736c63886d3e86862fb8ea0f053ca83003","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"maintainers":[{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"dist":{"shasum":"e32809736c63886d3e86862fb8ea0f053ca83003","tarball":"https://registry.npmjs.org/csrf-tokens/-/csrf-tokens-1.0.1.tgz","integrity":"sha512-hgm1dBK5tIPESszxUfzfK4I2GBzfPHC/rl6xnIZTjlA+/gL6TrEO+doNZu2VZjw2u9ok81AdN93649f95o8dOw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCtwlPkCyFpQmkEkYA+OpQVQXuXllwrXLYnk5IxndFh3QIhAJAcokACpn6Pthlt4YhCBpYjHJyVA4MSjOQbSlbN38nJ"}]}},"1.0.2":{"name":"csrf-tokens","description":"primary logic behind csrf tokens","version":"1.0.2","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"},"bugs":{"url":"https://github.com/expressjs/csrf-tokens/issues"},"homepage":"https://github.com/expressjs/csrf-tokens","_id":"csrf-tokens@1.0.2","_shasum":"03b1206a7876baaf5d0e347a2bc566cdfa2ca30b","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"maintainers":[{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"dist":{"shasum":"03b1206a7876baaf5d0e347a2bc566cdfa2ca30b","tarball":"https://registry.npmjs.org/csrf-tokens/-/csrf-tokens-1.0.2.tgz","integrity":"sha512-RxG+LRkqfaH4VFVel6QY+o6B3AvdBa6hU4YU73aiH4nDoY/vZSk8sKmPkXZDoXHtgFtkfCagxXFLYhb3rGb2gw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDnLz8XFxOSlM/+dD1zciBuIOfPR6mrEnv4PbMMi1vcDAIhANT6oLA+ZmQCPJvtqexahvHfOu4We2ymDGI8TqekpPyE"}]}},"1.0.3":{"name":"csrf-tokens","description":"primary logic behind csrf tokens","version":"1.0.3","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"},"bugs":{"url":"https://github.com/expressjs/csrf-tokens/issues"},"homepage":"https://github.com/expressjs/csrf-tokens","_id":"csrf-tokens@1.0.3","_shasum":"a2241f71903bc94f82c36adfae1d006fbb3b2c0e","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"maintainers":[{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"dist":{"shasum":"a2241f71903bc94f82c36adfae1d006fbb3b2c0e","tarball":"https://registry.npmjs.org/csrf-tokens/-/csrf-tokens-1.0.3.tgz","integrity":"sha512-/kis4o26EEyfQj4cpvsC3efe0S1xk7NVxUAuzL4akLV5yzJVZbZs7M0sSmW35zfnzdtegzNRLgfUk3TWu1lrPw==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQC2fvrZU27UAzEU2Pc6HxW5Cs2bT9Kjf9CX3HVY/r6Q3QIhAKwitl9Z1MvcyULTYWx04S3D7Mk1QhzCsXDJyjQuI5Wk"}]}},"1.0.4":{"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"},"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":".","_npmVersion":"1.4.9","_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"maintainers":[{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"dist":{"shasum":"49672568b2703348644eacaf61cdbdc054ba56f2","tarball":"https://registry.npmjs.org/csrf-tokens/-/csrf-tokens-1.0.4.tgz","integrity":"sha512-E1wOfXYkqlUAdwwWcFk3QBmE7h9J5/s6WBJt4LQx4zeEb+oybx/UDTTwsqF/5R5G0HXejfl7iE3nmjjzUPyyyQ==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCXhs9vDyJkWm1dSWzrOSduECOTdG3kmpo+WUH351OogwIgeFELj48gCfKJbq9ld/n8kLcNfuabVCEx6EqKt9LNg8o="}]}},"2.0.0":{"name":"csrf-tokens","description":"primary logic behind csrf tokens","version":"2.0.0","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","scmp":"~0.0.3","uid-safe":"1","base64-url":"1"},"devDependencies":{"mocha":"1"},"scripts":{"test":"mocha --reporter spec"},"bugs":{"url":"https://github.com/expressjs/csrf-tokens/issues"},"homepage":"https://github.com/expressjs/csrf-tokens","_id":"csrf-tokens@2.0.0","_shasum":"c821003fb8b6ad17bc977d6fd1a84bedc3ed619b","_from":".","_npmVersion":"1.4.9","_npmUser":{"name":"jongleberry","email":"jonathanrichardong@gmail.com"},"maintainers":[{"name":"jongleberry","email":"jonathanrichardong@gmail.com"}],"dist":{"shasum":"c821003fb8b6ad17bc977d6fd1a84bedc3ed619b","tarball":"https://registry.npmjs.org/csrf-tokens/-/csrf-tokens-2.0.0.tgz","integrity":"sha512-IzcrVVxQJvHoeNSSA9zc9LqIBUPM3OdRUzJ/4ooSbROhvJOSAi6qve2J6XEhmltcECmf/UiR/pgzkHXY5x1mGA==","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIQDZVSrn5d1u1FPdgX/xPoE2MSs0vcU9dQefE7lLak6fdgIffKmEh4B6J0GRWCTJHYBzlnC2jSkGJRgnRY1PUS2/Gw=="}]}}},"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.secretSync()\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### tokens.secret([cb])\n\nAsynchronously create a new `secret` of length `secretLength`.\nIf `cb` is not defined, a promise is returned.\nYou don't have to use this.\n\n```js\ntokens.secret().then(function (secret) {\n\n})\n\ntokens.secret(function (err, secret) {\n\n})\n```\n\n### var secret = tokens.secretSync()\n\nSynchronous version of `tokens.secret()`\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","maintainers":[{"email":"jonathanrichardong@gmail.com","name":"jongleberry"},{"email":"doug@somethingdoug.com","name":"dougwilson"}],"time":{"modified":"2022-06-14T04:26:11.944Z","created":"2014-06-08T21:46:41.232Z","1.0.0":"2014-06-08T21:46:41.232Z","1.0.1":"2014-06-08T21:52:24.071Z","1.0.2":"2014-06-08T22:02:41.123Z","1.0.3":"2014-06-08T22:06:55.043Z","1.0.4":"2014-06-11T01:17:52.212Z","2.0.0":"2014-06-18T09:13:54.116Z"},"homepage":"https://github.com/expressjs/csrf-tokens","repository":{"type":"git","url":"git://github.com/expressjs/csrf-tokens"},"author":{"name":"Jonathan Ong","email":"me@jongleberry.com","url":"http://jongleberry.com"},"bugs":{"url":"https://github.com/expressjs/csrf-tokens/issues"},"license":"MIT","readmeFilename":"README.md"}