feat: trying to add hashes to scripts
This commit is contained in:
@@ -1,27 +1,39 @@
|
||||
//routes/middleware-error-handler/_middleware.ts
|
||||
import { FreshContext } from "$fresh/server.ts";
|
||||
import { DomainError } from "@lib/errors.ts";
|
||||
import { getCookies } from "@std/http/cookie";
|
||||
import { verify } from "https://deno.land/x/djwt@v2.2/mod.ts";
|
||||
import { verify } from "@zaubrik/djwt";
|
||||
import * as perf from "@lib/performance.ts";
|
||||
import { JWT_SECRET } from "@lib/env.ts";
|
||||
import { define } from "../utils.ts";
|
||||
|
||||
export async function handler(
|
||||
req: Request,
|
||||
ctx: FreshContext,
|
||||
function importKey(secret: string) {
|
||||
return crypto.subtle.importKey(
|
||||
"raw",
|
||||
new TextEncoder().encode(secret),
|
||||
{ name: "HMAC", hash: "SHA-512" },
|
||||
false,
|
||||
["sign", "verify"],
|
||||
);
|
||||
}
|
||||
|
||||
const authMiddleware = define.middleware(async function (
|
||||
ctx,
|
||||
) {
|
||||
const req = ctx.req;
|
||||
|
||||
try {
|
||||
performance.mark("a");
|
||||
const allCookies = getCookies(req.headers);
|
||||
const sessionCookie = allCookies["session_cookie"];
|
||||
if (!ctx.state.session && sessionCookie && JWT_SECRET) {
|
||||
try {
|
||||
const payload = await verify(sessionCookie, JWT_SECRET, "HS512");
|
||||
const payload = await verify<typeof ctx.state.session>(
|
||||
sessionCookie,
|
||||
await importKey(JWT_SECRET),
|
||||
);
|
||||
if (payload) {
|
||||
ctx.state.session = payload;
|
||||
}
|
||||
} catch (_err) {
|
||||
//
|
||||
console.log({ _err });
|
||||
}
|
||||
}
|
||||
@@ -44,4 +56,6 @@ export async function handler(
|
||||
status: 500,
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
export default [authMiddleware];
|
||||
|
||||
Reference in New Issue
Block a user