跳到主要内容

cookies

next.js允许你通过 cookies() 函数从服务器组件读取 HTTP 传入请求 cookie,同时也支持写入 cookie。

cookies().get(name)

从cookies中获取指定名称的cookie值。

import { cookies } from 'next/headers'

export default function Page() {
const cookieStore = cookies()
const theme = cookieStore.get('theme')
return '...'
}

cookies().getAll()

从cookies中获取所有cookie值。

cookies().has(name)

判断指定名称的cookie是否存在。

cookies().set(name, value, options)

设置指定名称的cookie值。

'use server'

import { cookies } from 'next/headers'

async function create(data) {
cookies().set('name', 'lee')
cookies().set('name', 'lee', { secure: true })
cookies().set({
name: 'name',
value: 'lee',
httpOnly: true,
path: '/',
})
}
  • options.maxAge: 设置cookie的过期时间,单位为秒。
  • options.expires: 设置cookie的过期时间戳,相比maxAge,expires是一个绝对时间,但是可能会收到时区影响。

cookies().delete(name)

删除指定名称的cookie。