logmein
Viewing readonly version: 147View latest version
Script
999
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/** @jsxImportSource npm:react */
import { extractProjectValInfo } from "https://esm.town/v/maxm/extractProjectValInfo";
import { renderToString } from "npm:react-dom/server";
import { DB } from "./db";
import { getSessionKey, setSession } from "./sessionCookie";
type Handler = (r: Request) => Promise<Response> | Response;
export async function middleware(
importMetaUrl: string,
handle: Handler,
): Promise<Handler> {
const projectInfo = extractProjectValInfo(importMetaUrl);
const db = new DB(projectInfo.projectName);
await db.migrate();
return async (r: Request) => {
const sessionKey = getSessionKey(r);
if (sessionKey !== undefined) {
if (await db.validateSession(sessionKey)) {
// User is logged in, return the handler!
return handle(r);
}
}
return landingPage(r, projectInfo);
};
// return (r: Request) => {
// return handle(r);
// };
}
function landingPage(req: Request, projectInfo: ReturnType<typeof extractProjectValInfo>) {
return new Response(
renderToString(
<html>
<head>
<title>Log Me In</title>