|
1 | | -import { createMiddleware, appendHeader, getCookie, getHeader } from "@solidjs/start/server"; |
| 1 | +import { createMiddleware} from "@solidjs/start/middleware"; |
2 | 2 | import { Session, User, verifyRequestOrigin } from "lucia"; |
3 | 3 | import { lucia } from "./lib/auth"; |
| 4 | +import { appendHeader, getCookie, getHeader } from "vinxi/http"; |
| 5 | +import { FetchEvent } from "@solidjs/start/server"; |
4 | 6 |
|
5 | 7 | export default createMiddleware({ |
6 | | - onRequest: async (event) => { |
7 | | - if (event.node.req.method !== "GET") { |
8 | | - const originHeader = getHeader(event, "Origin") ?? null; |
9 | | - const hostHeader = getHeader(event, "Host") ?? null; |
| 8 | + onRequest: [ async (event: FetchEvent) => { |
| 9 | + if (event.request.method !== "GET") { |
| 10 | + const originHeader = getHeader("Origin") ?? null; |
| 11 | + const hostHeader = getHeader( "Host") ?? null; |
10 | 12 | if (!originHeader || !hostHeader || !verifyRequestOrigin(originHeader, [hostHeader])) { |
11 | | - event.node.res.writeHead(403).end(); |
| 13 | + event.response.status = 403; |
12 | 14 | return; |
13 | 15 | } |
14 | 16 | } |
15 | 17 |
|
16 | | - const sessionId = getCookie(event, lucia.sessionCookieName) ?? null; |
| 18 | + const sessionId = getCookie(lucia.sessionCookieName) ?? null; |
17 | 19 | if (!sessionId) { |
18 | | - event.context.session = null; |
19 | | - event.context.user = null; |
| 20 | + event.locals.session = null; |
| 21 | + event.locals.user = null; |
20 | 22 | return; |
21 | 23 | } |
22 | 24 |
|
23 | 25 | const { session, user } = await lucia.validateSession(sessionId); |
24 | 26 | if (session && session.fresh) { |
25 | | - appendHeader(event, "Set-Cookie", lucia.createSessionCookie(session.id).serialize()); |
| 27 | + appendHeader("Set-Cookie", lucia.createSessionCookie(session.id).serialize()); |
26 | 28 | } |
27 | 29 | if (!session) { |
28 | | - appendHeader(event, "Set-Cookie", lucia.createBlankSessionCookie().serialize()); |
| 30 | + appendHeader("Set-Cookie", lucia.createBlankSessionCookie().serialize()); |
29 | 31 | } |
30 | | - event.context.session = session; |
31 | | - event.context.user = user; |
32 | | - } |
| 32 | + event.locals.session = session; |
| 33 | + event.locals.user = user; |
| 34 | + }] |
33 | 35 | }); |
34 | 36 |
|
35 | | -declare module "vinxi/server" { |
36 | | - interface H3EventContext { |
| 37 | +declare module "@solidjs/start/server" { |
| 38 | + interface RequestEventLocals { |
37 | 39 | user: User | null; |
38 | 40 | session: Session | null; |
39 | 41 | } |
|
0 commit comments