Read and set cookies in server components or route handlers. cookies() from next/headers.
import { cookies } from 'next/headers';
// Read (server component or route handler)
export async function Page() {
const cookieStore = await cookies();
const theme = cookieStore.get('theme')?.value ?? 'light';
return <div>Theme: {theme}</div>;
}
// Set (e.g. in server action)
import { cookies } from 'next/headers';
const cookieStore = await cookies();
cookieStore.set('theme', 'dark', { path: '/', maxAge: 60 * 60 * 24 * 365 });
Await cookies() from next/headers in server components or route handlers. Returns a read-only get or mutable set/delete.
set(name, value, { path, maxAge, httpOnly, secure, sameSite }) for persistence and security.
const token = (await cookies()).get('token')?.value;