@paroicms/server
Version:
The ParoiCMS server
22 lines • 953 B
JavaScript
import { accessTokenTtlInMs, generateProtectedToken, PROTECTED_TOKEN_COOKIE, } from "./protected-access-token.js";
export async function protectedAccessController(siteContext, httpContext) {
const { access: { access, password }, } = siteContext;
if (access !== "protected" || !password)
return { status: 401 };
if (httpContext.req.method !== "POST" || !httpContext.req.body) {
httpContext.res.status(400);
return { status: 400, message: "Bad request" };
}
const body = httpContext.req.body;
if (body.password === password) {
const token = await generateProtectedToken(password);
httpContext.res.cookie(PROTECTED_TOKEN_COOKIE, token, {
httpOnly: true,
path: "/",
maxAge: body.remember ? accessTokenTtlInMs : undefined,
});
return { status: 200 };
}
return { status: 401 };
}
//# sourceMappingURL=protected-access.controller.js.map