我通过 Express.Js 后端服务器设置 cookie,响应显示 set-cookie,但我在客户端上使用 Next.js 15,并且未设置 cookie。 尽管我在某处读到服务器操作正在服务器组件上执行。 有没有人可以建议通过 set-cookie 设置 cookie
const date = new Date();
date.setDate(date.getDate() + 1);
res.clearCookie("authToken");
res.cookie("authToken", token, {
httpOnly: true,
expires: date,
path: "/",
sameSite: "none",
});
Next.js 服务器操作登录:已在文件中使用“使用服务器”。
try {
const res = await axiosInstance.request({
url: "/auth/login",
method: "POST",
data: { name, email, password },
});
console.log(res);
console.log("Request successful:login ", res.data);
return res.data;
} catch (error) {
console.log("Error while signup: => ", error);
throw error;
}
形式:
<form action={handleSubmit}>
next js 中的 cookies 是其中的重要组成部分,在 next js 13-14 和 15 中,next js 团队还没有完成它。 所以我们在路由处理程序和服务器操作中设置 cookie 时遇到一些问题。 您可以使用以下代码进行设置:
'use server'
import { cookies } from "next/headers";
export async function cookie_setter(name: string, value: string,time:number) {
(await cookies()).set({
name: name,
value: value,
httpOnly: true,
secure: true,
sameSite: "none",
path: "/",
expires: new Date(Date.now() + time)
});
return 1
}
我在我的网站中使用了这段代码https://mernfa.ir/nextjs-learning,你可以看到它正在工作身份验证部分......