1.0.6 โ€ข Published 1 year ago

@sensethenlove/jwt v1.0.6

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

๐Ÿ•‰ @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 extends Error
  • 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')
}

๐Ÿ’– Our helpful packages!