我无法删除生产中的cookies

问题描述 投票:0回答:1

我在生产中遇到一个问题,即注销时未删除 cookie,导致用户被重定向到主页而不是登录页面。此行为在开发模式下按预期工作,但我不确定如何在生产中解决此问题。请帮忙。

退出页面:

"use client";

import { useEffect } from "react";

import signOut from "../(main)/actions/auth/sign-out";

export default function SignoutPage() {
  useEffect(() => {
    signOut();
  }, []);

  return (
    <div>
      <h1>Signing out</h1>
    </div>
  );
}

注销操作:


"use server";

import { cookies } from "next/headers";
import { redirect } from "next/navigation";

export default async function signOut() {
  const cookieStore = cookies();

  cookieStore.delete("refreshToken");
  cookieStore.delete("accessToken");
  cookieStore.delete("session");

  redirect("/login");
}
next.js cookies server-action
1个回答
0
投票

我无意中发现你可以为删除功能添加额外的选项,这在docs中没有提到。添加这些额外的字段解决了问题,尽管我不确定哪个特定字段可以解决问题。

cookieStore.delete({
name: "session",
httpOnly: true,
secure: process.env.NODE_ENV !== "development",
sameSite: process.env.NODE_ENV === "development" ? "lax" : "none",
maxAge: 0,
path: "/",
...(process.env.NODE_ENV === "production" && {
  domain: process.env.NEXT_PUBLIC_DOMAIN,
  }),
});
© www.soinside.com 2019 - 2024. All rights reserved.