Skip to content

Repository files navigation

@deanrih/totp-ts

A helper library to interact with JSON Web Token.

Installation

# Bun
bun add @deanrih/ts-lib-jwt
# pnpm
pnpm add @deanrih/ts-lib-jwt
# npm
npm install @deanrih/ts-lib-jwt

Usage

import { jwtWriter } from "@deanrih/ts-lib-jwt";

const secretKey = "$up3r$3cretK3y7h@7@7l34$t256b1ts";
const tokenResult = jwtWriter({
	iss: "/issuer",

	aud: ["/audience/name-1", "/audience/name-2"],
	azp: ["/party/name-1"],

	typ: "/authorization",
	cse: "/sign-in/request",

	sub: "user-one-account-id",
}).encode();

if (tokenResult.isErr()) {
	console.error(`Failed to generate token`);
	throw tokenResult.error;
}

const tokenSigned = tokenResult.value.sign(secretKey);

console.log("Token:");
console.log(tokenSigned);
import { jwtReader } from "@deanrih/ts-lib-jwt";

const encodedToken = "...";
const secretKey = "$up3r$3cretK3y7h@7@7l34$t256b1ts";
const decodedResult = jwtReader(encoded).decode();

if (decodedResult.isErr()) {
	console.error(`Failed to decode token`);
	throw decodedResult.error;
}

const token = decoded.value;
const validateResult = token.validate(secretKey);

if (validateResult.isErr()) {
	console.error(`Failed to validate token`);
	throw validateResult.error;
}

const validatedToken = validateResult.value;
const header = validatedToken.header;
const payload = validatedToken.payload;

console.log("Subject:");
console.log(payload["sub"]);

Checkout the example folder.

Credits/Reference

IETF RFC Datatracker

About

A helper library for interacting with JSON Web Token (JWT)

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages