Generate cryptographically secure token strings
npm install tokgen[![npm Version][npm-image]][npm-url]
[![npm Downloads][downloads-image]][downloads-url]
[![Test Status][travis-image]][travis-url]
[![Test Coverage][coveralls-image]][coveralls-url]
[![MIT Licensed][license-image]][license-url]
Generate cryptographically secure token strings.
``js
const TokenGenerator = require('tokgen');
let generator = new TokenGenerator();
let token = generator.generate();
// => 'Q1GM0wL95xUkE2JBXzBiV75MrGTw6GAk'
token = generator.generate();
// => 'RPTXBktJl1lgHMTVQOzKVpFlR3hfOIfI'
`
`js
const TokenGenerator = require('tokgen');
let generator = new TokenGenerator({chars: '0-9a-f', length: 8});
let token = generator.generate();
// => '5f8ab69e'
token = generator.generate();
// => 'e5e3c24a'
`
`bash`
npm install tokgen
`js`
const TokenGenerator = require('tokgen');
Create a new token generator with the specified options.
#### options
object, string, number (default = {})
TokenGenerator's constructor accepts these properties in the options object:
Note: If options is a string it's treated as chars.
Note: If options is a number it's treated as length.
##### chars
string (default = '0-9a-zA-Z')
The character range used for tokens returned by this generator.
`js
new TokenGenerator(); // default
new TokenGenerator({chars: 'a-z'});
new TokenGenerator('a-z'); // shortcut
`
##### length
number (default = 32)
The default length (in characters) of tokens returned by this generator.
`js
new TokenGenerator(); // default
new TokenGenerator({length: 16});
new TokenGenerator(16); // shortcut
`
Generates a new token string. The call is asynchronous if callback is specified.
#### length
number (default = undefined)
The length of the token to be generated. If length is not specified the default
length as given to the constructor is used.
`js
let generator = new TokenGenerator();
// default length
let token = generator.generate();
// => 'mY9LJeyGt5p6TcJ7kEOm4M0N7mdoIbGh'
// explicit length
token = generator.generate(8);
// => 'sySbqK9N'
`
#### callback
function (default = undefined)
Generate the token asynchronously and then pass it to the callback.
The callback is expected to be a (for Node.js typical) error-first callback.
`js
let generator = new TokenGenerator();
// default length
generator.generate((error, token) => {
if (error) {
return console.error(error);
}
console.log(token);
// => 'mY9LJeyGt5p6TcJ7kEOm4M0N7mdoIbGh'
});
// explicit length
generator.generate(8, (error, token) => {
if (error) {
return console.error(error);
}
console.log(token);
// => 'sySbqK9N'
});
`
To run the test suite, install dependencies, then run npm test:
`bash`
npm install
npm test
Coverage reports are generated by running npm run coverage.
Linting is done with npm run lint`.
[npm-image]: https://img.shields.io/npm/v/tokgen.svg
[npm-url]: https://npmjs.org/package/tokgen
[downloads-image]: https://img.shields.io/npm/dm/tokgen.svg
[downloads-url]: https://npmjs.org/package/tokgen
[travis-image]: https://img.shields.io/travis/maxtruxa/tokgen/master.svg
[travis-url]: https://travis-ci.org/maxtruxa/tokgen
[coveralls-image]: https://img.shields.io/coveralls/maxtruxa/tokgen/master.svg
[coveralls-url]: https://coveralls.io/r/maxtruxa/tokgen?branch=master
[license-image]: https://img.shields.io/badge/license-MIT-blue.svg
[license-url]: https://raw.githubusercontent.com/maxtruxa/tokgen/master/LICENSE