Skip to main content

JWT

Simple jwt libs for NHttp.

Install

install external libs @nhttp/jwt.

deno add @nhttp/jwt

Example

import nhttp from "@nhttp/nhttp";
import jwt from "@nhttp/jwt";

// key secret
const JWT_SECRET = "myjwtsecret";

const guard = () => {
return jwt({
secret: JWT_SECRET,
onAuth: (rev, next) => {...}
});
}

const app = nhttp();

app.post("/login", (rev) => {
// example payload.
const payload = {
iat: Math.round(Date.now() / 1000),
// expires 1 hours
exp: Math.round(Date.now() / 1000 + (1 * 60 * 60)),
user: rev.body.username,
};
return { token: jwt.encode(payload, JWT_SECRET) };
});

app.get("/admin/home", guard(), (rev) => {
return `Welcome ${rev.auth.user}`;
});

app.listen(8000, (_err, info) => {
console.log(`Running on port ${info.port}`);
});

With Routing Controller

import { Jwt } from "@nhttp/jwt";

@Controller("/admin")
class AdminController {
...
@Jwt({ secret: "secret" })
@Get("/home")
home(rev: RequestEvent) {
console.log("Payload =>", rev.auth);
return "Welcome Home";
}
...
}