21 lines
622 B
TypeScript
21 lines
622 B
TypeScript
import { HandlerContext, MiddlewareHandlerContext, Status } from "$fresh/server.ts";
|
|
import { getCookies } from "http/cookie.ts";
|
|
import { verify } from "djwt";
|
|
import { prepareSecretKey } from "../util/secret.ts";
|
|
|
|
export const handler = async (
|
|
req: Request,
|
|
ctx: MiddlewareHandlerContext<Record<string, unknown>>,
|
|
) => {
|
|
const secret_key = await prepareSecretKey();
|
|
const cookies = getCookies(req.headers);
|
|
const jwt = cookies["auth"];
|
|
try {
|
|
const payload = await verify(jwt, secret_key);
|
|
ctx.state["login"] = payload;
|
|
} catch (_) {
|
|
ctx.state["login"] = null;
|
|
}
|
|
return await ctx.next();
|
|
}
|