1.0.6 โข Published 1 year ago
@sensethenlove/jwt v1.0.6
๐ @sensethenlove/jwt
๐ Description
Node and/or Edge helper functions to create JWK's & create & verify JWT's w/ the subtle crypto api (ECDSA)
โฏ๏ธ Install
pnpm add @sensethenlove/jwt
pnpm add buffer # only necessary if edge (browser) (cloudflare workers)
๐ Example: Create public & private jwk
The public & private jwk will log in the terminal, then we put them in our .env
file
import { createJWKs } from '@sensethenlove/jwt'
createJWKs()
๐งก Example: Create jwt
import { Buffer } from 'buffer/' // edge
import { Buffer } from 'node:buffer' // node
import { createJWT } from '@sensethenlove/jwt'
import { JWK_PRIVATE } from '$env/static/private'
const jwtPayload = { userId: 1 }
const expiresInAsSeconds = 32400 // 9 hours
const jwt = await createJWT(jwtPayload, expiresInAsSeconds, JWK_PRIVATE, Buffer)
โค๏ธ Example: Decode jwt
import { Buffer } from 'buffer/' // edge
import { Buffer } from 'node:buffer' // node
import { decodeJWT } from '@sensethenlove/jwt'
const decoded = decodeJWT(jwt, Buffer)
๐ Example: Verify jwt
import { Buffer } from 'buffer/' // edge
import { Buffer } from 'node:buffer' // node
import { verifyJWT } from '@sensethenlove/jwt'
import { JWK_PUBLIC } from '$env/static/private'
const payload = await verifyJWT(jwt, JWK_PUBLIC, Buffer)
๐ Errors
JWTError
extendsError
- All other errors below extend
JWTError
import { JWTError, CreateTokenError, DecodeTokenError, VerifyTokenError, VerifyTokenExpiredError } from '@sensethenlove/jwt'
try {
// jwt code
} catch (e) {
if (e instanceof JWTError) console.log('foo')
}