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
41 lines
967 B
JavaScript
41 lines
967 B
JavaScript
import { serialize, parse } from "cookie";
|
|
|
|
const TOKEN_NAME = "token";
|
|
|
|
export const MAX_AGE = 60 * 60 * 8; // 8 hours
|
|
|
|
export function setTokenCookie(res, token) {
|
|
const cookie = serialize(TOKEN_NAME, token, {
|
|
maxAge: MAX_AGE,
|
|
expires: new Date(Date.now() + MAX_AGE * 1000),
|
|
httpOnly: true,
|
|
secure: process.env.NODE_ENV === "production",
|
|
path: "/",
|
|
sameSite: "lax",
|
|
});
|
|
|
|
res.setHeader("Set-Cookie", cookie);
|
|
}
|
|
|
|
export function removeTokenCookie(res) {
|
|
const cookie = serialize(TOKEN_NAME, "", {
|
|
maxAge: -1,
|
|
path: "/",
|
|
});
|
|
|
|
res.setHeader("Set-Cookie", cookie);
|
|
}
|
|
|
|
export function parseCookies(req) {
|
|
// For API Routes we don't need to parse the cookies.
|
|
if (req.cookies) return req.cookies;
|
|
|
|
// For pages we do need to parse the cookies.
|
|
const cookie = req.headers?.cookie;
|
|
return parse(cookie || "");
|
|
}
|
|
|
|
export function getTokenCookie(req) {
|
|
const cookies = parseCookies(req);
|
|
return cookies[TOKEN_NAME];
|
|
}
|