diff --git a/.env.example b/.env.example index 9cb5020..2cacb49 100644 --- a/.env.example +++ b/.env.example @@ -4,10 +4,11 @@ DATABASE_URI=mysql://website:website@localhost:3306/website ADMIN_USER=admin ADMIN_PASSWORD=admin +ADMIN_COOKIE=muelleel TEAMSPEAK_LINK=http://example.com DISCORD_LINK=http://example.com PAYPAL_LINK=http://example.com SERVER_IP=1.1.1.1 -BASE_PATH=http://localhost:4321/varo +BASE_PATH=http://localhost:4321 diff --git a/astro.config.mjs b/astro.config.mjs index 6521471..2d1d035 100644 --- a/astro.config.mjs +++ b/astro.config.mjs @@ -36,6 +36,7 @@ export default defineConfig({ ADMIN_USER: envField.string({ context: 'server', access: 'secret', optional: true }), ADMIN_PASSWORD: envField.string({ context: 'server', access: 'secret', optional: true }), + ADMIN_COOKIE: envField.string({ context: 'server', access: 'secret', default: 'muelleel' }), START_DATE: envField.string({ context: 'server', access: 'secret', default: '1970-01-01' }), diff --git a/src/util/session.ts b/src/util/session.ts index 4d9cf70..c87006a 100644 --- a/src/util/session.ts +++ b/src/util/session.ts @@ -2,9 +2,9 @@ import type { AstroCookies, AstroCookieSetOptions } from 'astro'; import { ActionError } from 'astro:actions'; import crypto from 'node:crypto'; import { Permissions } from './permissions.ts'; +import { ADMIN_COOKIE } from 'astro:env/server'; export class Session { - static readonly #cookieName = 'muelleel'; static readonly #cookieOptions: AstroCookieSetOptions = { httpOnly: true, path: '/', @@ -28,7 +28,7 @@ export class Session { for (let i = 0; i < Session.#sessions.length; i++) { if (Session.#sessions[i] == this) { Session.#sessions = Session.#sessions.splice(i, 1); - if (cookies) cookies.delete(Session.#cookieName, Session.#cookieOptions); + if (cookies) cookies.delete(ADMIN_COOKIE, Session.#cookieOptions); break; } } @@ -38,13 +38,13 @@ export class Session { const session = new Session(crypto.randomBytes(16).toString('hex'), adminId, permissions); Session.#sessions.push(session); - cookies.set(Session.#cookieName, session.sessionId, Session.#cookieOptions); + cookies.set(ADMIN_COOKIE, session.sessionId, Session.#cookieOptions); return session; } static sessionFromCookies(cookies: AstroCookies, neededPermissions?: Permissions) { - const sessionId = cookies.get(Session.#cookieName); + const sessionId = cookies.get(ADMIN_COOKIE); if (!sessionId) return null; for (const session of Session.#sessions) { @@ -60,7 +60,7 @@ export class Session { } static actionSessionFromCookies(cookies: AstroCookies, neededPermissions?: Permissions) { - const sessionId = cookies.get(Session.#cookieName); + const sessionId = cookies.get(ADMIN_COOKIE); if (!sessionId) throw new ActionError({ code: 'UNAUTHORIZED' }); for (const session of Session.#sessions) {