{"_id":"closevector-crypto-jwt","_rev":"2-956be84587d402079ed3f68d375f5c32","name":"closevector-crypto-jwt","dist-tags":{"latest":"0.1.0-alpha.3"},"versions":{"0.1.0-alpha.1":{"name":"closevector-crypto-jwt","version":"0.1.0-alpha.1","description":"A lightweight JWT implementation with ZERO dependencies for Cloudflare Worker","main":"index.js","types":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/tsndr/cloudflare-worker-jwt.git"},"keywords":["jwt","token","cloudflare","worker","cloudflare-worker"],"author":{"name":"Tobias Schneider"},"license":"MIT","bugs":{"url":"https://github.com/tsndr/cloudflare-worker-jwt/issues"},"homepage":"https://github.com/tsndr/cloudflare-worker-jwt#readme","devDependencies":{"@cloudflare/workers-types":"^3.13.0","jest":"^28.1.1","typescript":"^4.7.4"},"scripts":{"preinstall":"npm run build","build":"tsc","test":"jest"},"_id":"closevector-crypto-jwt@0.1.0-alpha.1","_integrity":"sha512-ShcooCUlF2PymCPWNSrW7qaYjzWGzgaBZ0ZSJj/PN2KWp6qh6Dxo9y1OutZlWo+2bAy6v/iEWNnVNIJu6A6AHA==","_resolved":"/private/var/folders/nv/2zsh04kd2hg6d02svr6cfvkw0000gn/T/a058dba8dd7699fd502e2b4064de6b35/closevector-crypto-jwt-0.1.0-alpha.1.tgz","_from":"file:closevector-crypto-jwt-0.1.0-alpha.1.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-ShcooCUlF2PymCPWNSrW7qaYjzWGzgaBZ0ZSJj/PN2KWp6qh6Dxo9y1OutZlWo+2bAy6v/iEWNnVNIJu6A6AHA==","shasum":"d5c14c6c2c2a68d8797ea8b8faaa70d6b27c32ad","tarball":"https://registry.npmjs.org/closevector-crypto-jwt/-/closevector-crypto-jwt-0.1.0-alpha.1.tgz","fileCount":5,"unpackedSize":17530,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIEG5QpF0AlSOBsR8CnE3Ivdk4B9pc5NDwISw6+vEFwLRAiEAuaS5PU/Uohh1CtMr5W3K/a4ca8FWwyD6bg1aw8pJU8w="}]},"_npmUser":{"name":"jo32","email":"j.jolam@gmail.com"},"directories":{},"maintainers":[{"name":"jo32","email":"j.jolam@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/closevector-crypto-jwt_0.1.0-alpha.1_1695057491684_0.4068823208017167"},"_hasShrinkwrap":false},"0.1.0-alpha.2":{"name":"closevector-crypto-jwt","version":"0.1.0-alpha.2","description":"A lightweight JWT implementation with ZERO dependencies for Cloudflare Worker","main":"index.js","types":"index.d.ts","scripts":{"build":"tsc","test":"jest"},"repository":{"type":"git","url":"git+https://github.com/tsndr/cloudflare-worker-jwt.git"},"keywords":["jwt","token","cloudflare","worker","cloudflare-worker"],"author":{"name":"Tobias Schneider"},"license":"MIT","bugs":{"url":"https://github.com/tsndr/cloudflare-worker-jwt/issues"},"homepage":"https://github.com/tsndr/cloudflare-worker-jwt#readme","devDependencies":{"@cloudflare/workers-types":"^3.13.0","jest":"^28.1.1","typescript":"^4.7.4"},"gitHead":"40be7b2298a7e686bced00e21aeeab0698ea10f5","_id":"closevector-crypto-jwt@0.1.0-alpha.2","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-NcuwMSTBkj5qXGt0ZztSrGkDF82lJgiewBwb4dS4NjNPuJKpmknPQXou4YpiY8hrZVBsQcYEGp5qN9+gtXseEw==","shasum":"7b06d9b65b9f97599e56d0313015065787a71889","tarball":"https://registry.npmjs.org/closevector-crypto-jwt/-/closevector-crypto-jwt-0.1.0-alpha.2.tgz","fileCount":5,"unpackedSize":17496,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICjzzqBPDNGJYnoSb+iMabddinnpg7Zpmw4wdPY3N4f3AiAJTPHJWWlugLQuHXWkugAGVpZiTcAtqVs+f9aMnG57SA=="}]},"_npmUser":{"name":"jo32","email":"j.jolam@gmail.com"},"directories":{},"maintainers":[{"name":"jo32","email":"j.jolam@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/closevector-crypto-jwt_0.1.0-alpha.2_1695181078145_0.5945978631926725"},"_hasShrinkwrap":false},"0.1.0-alpha.3":{"name":"closevector-crypto-jwt","version":"0.1.0-alpha.3","description":"A lightweight JWT implementation with ZERO dependencies for Cloudflare Worker","main":"index.js","types":"index.d.ts","repository":{"type":"git","url":"git+https://github.com/tsndr/cloudflare-worker-jwt.git"},"keywords":["jwt","token","cloudflare","worker","cloudflare-worker"],"author":{"name":"Tobias Schneider"},"license":"MIT","bugs":{"url":"https://github.com/tsndr/cloudflare-worker-jwt/issues"},"homepage":"https://github.com/tsndr/cloudflare-worker-jwt#readme","devDependencies":{"@cloudflare/workers-types":"^3.13.0","jest":"^28.1.1","typescript":"^5.1.6"},"scripts":{"build":"tsc","test":"jest"},"_id":"closevector-crypto-jwt@0.1.0-alpha.3","_integrity":"sha512-hYfUIrCEk62r8QF3REVWvrAlYji1SYxoSta6tGKpvYsk7RT+bFex7t/rriRNzcBCCNAvqLjqpxnQiENEjwxU0A==","_resolved":"/private/var/folders/nv/2zsh04kd2hg6d02svr6cfvkw0000gn/T/1d577e773ef72b7b56e970abbc6267dc/closevector-crypto-jwt-0.1.0-alpha.3.tgz","_from":"file:closevector-crypto-jwt-0.1.0-alpha.3.tgz","_nodeVersion":"16.15.1","_npmVersion":"8.11.0","dist":{"integrity":"sha512-hYfUIrCEk62r8QF3REVWvrAlYji1SYxoSta6tGKpvYsk7RT+bFex7t/rriRNzcBCCNAvqLjqpxnQiENEjwxU0A==","shasum":"20c8e5d4406845a06355c65bfca72319fbcac112","tarball":"https://registry.npmjs.org/closevector-crypto-jwt/-/closevector-crypto-jwt-0.1.0-alpha.3.tgz","fileCount":5,"unpackedSize":17495,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBBDZz/AHeU+5tkvWAE7aanoYw1XBnDH9SMaYdyh3effAiEAmi/ade3VfKz/wEztj2XZpdI2OeORDkpPgH1zpWhlSYk="}]},"_npmUser":{"name":"jo32","email":"j.jolam@gmail.com"},"directories":{},"maintainers":[{"name":"jo32","email":"j.jolam@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/closevector-crypto-jwt_0.1.0-alpha.3_1696518843199_0.2687248516738239"},"_hasShrinkwrap":false}},"time":{"created":"2023-09-18T17:18:11.683Z","0.1.0-alpha.1":"2023-09-18T17:18:11.938Z","modified":"2023-10-05T15:14:03.626Z","0.1.0-alpha.2":"2023-09-20T03:37:58.358Z","0.1.0-alpha.3":"2023-10-05T15:14:03.404Z"},"maintainers":[{"name":"jo32","email":"j.jolam@gmail.com"}],"description":"A lightweight JWT implementation with ZERO dependencies for Cloudflare Worker","homepage":"https://github.com/tsndr/cloudflare-worker-jwt#readme","keywords":["jwt","token","cloudflare","worker","cloudflare-worker"],"repository":{"type":"git","url":"git+https://github.com/tsndr/cloudflare-worker-jwt.git"},"author":{"name":"Tobias Schneider"},"bugs":{"url":"https://github.com/tsndr/cloudflare-worker-jwt/issues"},"license":"MIT","readme":"# Cloudflare Worker JWT\n\n> This package is modified from Cloudflare Worker JWT.\n\nA lightweight JWT implementation with ZERO dependencies for Cloudflare Workers.\n\n\n## Contents\n\n- [Install](#install)\n- [Examples](#examples)\n- [Usage](#usage)\n    - [Sign](#sign)\n    - [Verify](#verify)\n    - [Decode](#decode)\n\n\n## Install\n\n```\nnpm i @tsndr/cloudflare-worker-jwt\n```\n\n\n## Examples\n\n### Basic Example\n\n```typescript\nasync () => {\n    import jwt from '@tsndr/cloudflare-worker-jwt'\n\n    // Creating a token\n    const token = await jwt.sign({ name: 'John Doe', email: 'john.doe@gmail.com' }, 'secret')\n\n    // Verifing token\n    const isValid = await jwt.verify(token, 'secret')\n\n    // Check for validity\n    if (!isValid)\n        return\n\n    // Decoding token\n    const { payload } = jwt.decode(token)\n}\n```\n\n### Restrict Timeframe\n\n```typescript\nasync () => {\n    import jwt from '@tsndr/cloudflare-worker-jwt'\n\n    // Creating a token\n    const token = await jwt.sign({\n        name: 'John Doe',\n        email: 'john.doe@gmail.com',\n        nbf: Math.floor(Date.now() / 1000) + (60 * 60),      // Not before: Now + 1h\n        exp: Math.floor(Date.now() / 1000) + (2 * (60 * 60)) // Expires: Now + 2h\n    }, 'secret')\n\n    // Verifing token\n    const isValid = await jwt.verify(token, 'secret') // false\n\n    // Check for validity\n    if (!isValid)\n        return\n\n    // Decoding token\n    const { payload } = jwt.decode(token) // { name: 'John Doe', email: 'john.doe@gmail.com', ... }\n}\n```\n\n## Usage\n\n- [Sign](#sign)\n- [Verify](#verify)\n- [Decode](#decode)\n\n<hr>\n\n### Sign\n#### `jwt.sign(payload, secret, [options])`\n\nSigns a payload and returns the token.\n\n#### Arguments\n\nArgument    | Type     | Status   | Default | Description\n----------- | -------- | -------- | ------- | -----------\n`payload`   | `object` | required | -       | The payload object. To use `nbf` (Not Before) and/or `exp` (Expiration Time) add `nbf` and/or `exp` to the payload.\n`secret`    | `string` | required | -       | A string which is used to sign the payload.\n`options`   | `object` | optional | `{ algorithm: 'HS256' }` | The options object supporting `algorithm` and `keyid`. (See [Available Algorithms](#available-algorithms))\n\n#### `return`\nReturns token as a `string`.\n\n<hr>\n\n### Verify\n#### `jwt.verify(token, secret, [options])`\n\nVerifies the integrity of the token and returns a boolean value.\n\nArgument    | Type     | Status   | Default | Description\n----------- | -------- | -------- | ------- | -----------\n`token`     | `string` | required | -       | The token string generated by `jwt.sign()`.\n`secret`    | `string` | required | -       | The string which was used to sign the payload.\n`options`   | `object` | optional | `{ algorithm: 'HS256', throwError: false }` | The options object supporting `algorithm` and `throwError`. (See [Available Algorithms](#available-algorithms))\n\n#### `throws`\nIf `options.throwError` is `true` and the token is invalid, an error will be thrown.\n\n#### `return`\nReturns `true` if signature, `nbf` (if set) and `exp` (if set) are valid, otherwise returns `false`. \n\n<hr>\n\n### Decode\n#### `jwt.decode(token)`\n\nReturns the payload **without** verifying the integrity of the token. Please use `jwt.verify()` first to keep your application secure!\n\nArgument    | Type     | Status   | Default | Description\n----------- | -------- | -------- | ------- | -----------\n`token`     | `string` | required | -       | The token string generated by `jwt.sign()`.\n\n#### `return`\nReturns an `object` containing `header` and `payload`:\n```javascript\n{\n    header: {\n        alg: 'HS256',\n        typ: 'JWT'\n    },\n    payload: {\n        name: 'John Doe',\n        email: 'john.doe@gmail.com'\n    }\n}\n```\n\n### Available Algorithms\n - ES256\n - ES384\n - ES512\n - HS256\n - HS384\n - HS512\n - RS256\n - RS384\n - RS512\n","readmeFilename":"README.md"}