You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					78 lines
				
				2.1 KiB
			
		
		
			
		
	
	
					78 lines
				
				2.1 KiB
			| 
								 
											3 years ago
										 
									 | 
							
								# uid-safe
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[![NPM Version][npm-image]][npm-url]
							 | 
						||
| 
								 | 
							
								[![NPM Downloads][downloads-image]][downloads-url]
							 | 
						||
| 
								 | 
							
								[![Node.js Version][node-version-image]][node-version-url]
							 | 
						||
| 
								 | 
							
								[![Build Status][travis-image]][travis-url]
							 | 
						||
| 
								 | 
							
								[![Test Coverage][coveralls-image]][coveralls-url]
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								URL and cookie safe UIDs
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Create cryptographically secure UIDs safe for both cookie and URL usage.
							 | 
						||
| 
								 | 
							
								This is in contrast to modules such as [rand-token](https://www.npmjs.com/package/rand-token)
							 | 
						||
| 
								 | 
							
								and [uid2](https://www.npmjs.com/package/uid2) whose UIDs are actually skewed
							 | 
						||
| 
								 | 
							
								due to the use of `%` and unnecessarily truncate the UID.
							 | 
						||
| 
								 | 
							
								Use this if you could still use UIDs with `-` and `_` in them.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## Installation
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```sh
							 | 
						||
| 
								 | 
							
								$ npm install uid-safe
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## API
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								var uid = require('uid-safe')
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### uid(byteLength, callback)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Asynchronously create a UID with a specific byte length. Because `base64`
							 | 
						||
| 
								 | 
							
								encoding is used underneath, this is not the string length. For example,
							 | 
						||
| 
								 | 
							
								to create a UID of length 24, you want a byte length of 18.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								uid(18, function (err, string) {
							 | 
						||
| 
								 | 
							
								  if (err) throw err
							 | 
						||
| 
								 | 
							
								  // do something with the string
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### uid(byteLength)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Asynchronously create a UID with a specific byte length and return a
							 | 
						||
| 
								 | 
							
								`Promise`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								**Note**: To use promises in Node.js _prior to 0.12_, promises must be
							 | 
						||
| 
								 | 
							
								"polyfilled" using `global.Promise = require('bluebird')`.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								uid(18).then(function (string) {
							 | 
						||
| 
								 | 
							
								  // do something with the string
							 | 
						||
| 
								 | 
							
								})
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								### uid.sync(byteLength)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								A synchronous version of above.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								```js
							 | 
						||
| 
								 | 
							
								var string = uid.sync(18)
							 | 
						||
| 
								 | 
							
								```
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## License
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[MIT](LICENSE)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[npm-image]: https://img.shields.io/npm/v/uid-safe.svg
							 | 
						||
| 
								 | 
							
								[npm-url]: https://npmjs.org/package/uid-safe
							 | 
						||
| 
								 | 
							
								[node-version-image]: https://img.shields.io/node/v/uid-safe.svg
							 | 
						||
| 
								 | 
							
								[node-version-url]: https://nodejs.org/en/download/
							 | 
						||
| 
								 | 
							
								[travis-image]: https://img.shields.io/travis/crypto-utils/uid-safe/master.svg
							 | 
						||
| 
								 | 
							
								[travis-url]: https://travis-ci.org/crypto-utils/uid-safe
							 | 
						||
| 
								 | 
							
								[coveralls-image]: https://img.shields.io/coveralls/crypto-utils/uid-safe/master.svg
							 | 
						||
| 
								 | 
							
								[coveralls-url]: https://coveralls.io/r/crypto-utils/uid-safe?branch=master
							 | 
						||
| 
								 | 
							
								[downloads-image]: https://img.shields.io/npm/dm/uid-safe.svg
							 | 
						||
| 
								 | 
							
								[downloads-url]: https://npmjs.org/package/uid-safe
							 |