Module

x/djwt/README.md

Create and verify JSON Web Tokens (JWT) with Deno or the browser.
Very Popular
Go to Latest
File

djwt

the absolute minimum to make JSON Web Tokens on deno. Based on JWT and JWS specifications.

API

makeJwt(headerObject: Jose, claims: Claims, key: string)

validateJwt(jwt: string, key: string, throwErrors: boolean = false, criticalHandlers: CritHandlers = {})

Example

import { serve } from "https://deno.land/std/http/server.ts"
import { encode, decode } from "https://deno.land/std/strings/mod.ts"
import { makeJwt } from "../create.ts"
import { validateJwt } from "../validate.ts"

const key = "abc"
const claims = {
  iss: "joe",
  exp: 1300819380,
}
const headerObject = {
  alg: "HS512",
  typ: "JWT",
}
const s = serve("0.0.0.0:8000")

;(async function main() {
  for await (const req of s) {
    if (req.method === "GET") {
      const jwt = makeJwt(headerObject, claims, key)
      req.respond({ body: encode(jwt) })
    } else {
      const requestBody = decode(await req.body())
      validateJwt(requestBody, key, false)
        ? req.respond({ body: encode("Valid JWT\n") })
        : req.respond({ status: 401, body: encode("Invalid JWT\n") })
    }
  }
})()

Todo

  1. Add more optional features from the JWT and JWS specifications
  2. Improve documentation
  3. Make more tests