4466ba436b
## Description This PR ensures that the default prettier config is used for examples and templates. This config is compatible with `prettier@3` as well (upgrading prettier is bigger change that can be a future PR). ## Changes - Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will be needed upgrading to prettier@3) - Added `examples/.prettierrc.json` with default config (this will change every example) - Added `packages/create-next-app/templates/.prettierrc.json` with default config (this will change every template) ## Related - Fixes #54402 - Closes #54409
29 lines
859 B
TypeScript
29 lines
859 B
TypeScript
import Iron from "@hapi/iron";
|
|
import { MAX_AGE, setTokenCookie, getTokenCookie } from "./auth-cookies";
|
|
|
|
const TOKEN_SECRET = process.env.TOKEN_SECRET;
|
|
|
|
export async function setLoginSession(res, session) {
|
|
const createdAt = Date.now();
|
|
// Create a session object with a max age that we can validate later
|
|
const obj = { ...session, createdAt, maxAge: MAX_AGE };
|
|
const token = await Iron.seal(obj, TOKEN_SECRET, Iron.defaults);
|
|
|
|
setTokenCookie(res, token);
|
|
}
|
|
|
|
export async function getLoginSession(req) {
|
|
const token = getTokenCookie(req);
|
|
|
|
if (!token) return;
|
|
|
|
const session = await Iron.unseal(token, TOKEN_SECRET, Iron.defaults);
|
|
const expiresAt = session.createdAt + session.maxAge * 1000;
|
|
|
|
// Validate the expiration date of the session
|
|
if (Date.now() > expiresAt) {
|
|
throw new Error("Session expired");
|
|
}
|
|
|
|
return session;
|
|
}
|