A helper library to interact with JSON Web Token.
# Bun
bun add @deanrih/ts-lib-jwt
# pnpm
pnpm add @deanrih/ts-lib-jwt
# npm
npm install @deanrih/ts-lib-jwtimport { 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.
IETF RFC Datatracker