export default async function authMiddleware(event: FetchEvent) {
const sessionId =
getCookie(event.nativeEvent, lucia.sessionCookieName) ?? null;
if (!sessionId) {
event.locals.user = null;
event.locals.session = null;
return;
}
// null when not found in database, expired
// fresh = true when half of expiration
const { session, user } = await lucia.validateSession(sessionId);
if (session && session.fresh) {
const sessionCookie = lucia.createSessionCookie(session.id);
setCookie(
event.nativeEvent,
sessionCookie.name,
sessionCookie.value,
sessionCookie.attributes,
);
}
if (!session) {
const sessionCookie = lucia.createBlankSessionCookie();
setCookie(
event.nativeEvent,
sessionCookie.name,
sessionCookie.value,
sessionCookie.attributes,
);
}
event.locals.user = user;
event.locals.session = session;
}
export default async function authMiddleware(event: FetchEvent) {
const sessionId =
getCookie(event.nativeEvent, lucia.sessionCookieName) ?? null;
if (!sessionId) {
event.locals.user = null;
event.locals.session = null;
return;
}
// null when not found in database, expired
// fresh = true when half of expiration
const { session, user } = await lucia.validateSession(sessionId);
if (session && session.fresh) {
const sessionCookie = lucia.createSessionCookie(session.id);
setCookie(
event.nativeEvent,
sessionCookie.name,
sessionCookie.value,
sessionCookie.attributes,
);
}
if (!session) {
const sessionCookie = lucia.createBlankSessionCookie();
setCookie(
event.nativeEvent,
sessionCookie.name,
sessionCookie.value,
sessionCookie.attributes,
);
}
event.locals.user = user;
event.locals.session = session;
}