han*_*ren 7 javascript cookies reactjs next.js next.js13
我正在尝试使用 Next.js 应用程序中的 next/headers 模块删除 cookie,但它似乎没有按预期工作。这是代码片段:
import {cookies} from "next/headers";
export default async function Signout() {
async function deleteTokens() {
"use server"
cookies().delete('accessToken')
}
await deleteTokens()
return (
<></>
);
}
Run Code Online (Sandbox Code Playgroud)
我期望 cookies().delete('accessToken') 行删除名为“accessToken”的 cookie,但它似乎没有任何效果。执行该函数后,cookie 仍然存在。
我收到以下错误:错误:Cookie 只能在服务器操作或路由处理程序中修改。阅读更多:https ://nextjs.org/docs/app/api-reference/functions/cookies#cookiessetname-value-options
但我已经设置了“使用服务器”并在 next.config.js 中启用了它
#使用 Next.js 13.4.4
也许您需要set
在操作上使用方法。从这里
很高兴知道:.set() 仅在服务器操作或路由处理程序中可用
要“删除”cookie,您必须设置一个具有相同名称和空值的新 cookie。您还可以将 maxAge 设置为 0 以立即使 cookie 过期。
相同文档中的示例:
'use server'
import { cookies } from 'next/headers'
async function create(data) {
cookies().set({
name: 'name',
value: '',
expires: new Date('2016-10-05'),
path: '/', // For all paths
})
}
Run Code Online (Sandbox Code Playgroud)
从这个问题来看,可能是13.4.2之后
归档时间: |
|
查看次数: |
6402 次 |
最近记录: |