代码之家  ›  专栏  ›  技术社区  ›  gndy Br

在Next.js13中间件中,我将一个新的访问令牌作为cookie,但页面组件最初显示了一个未定义的值

  •  0
  • gndy Br  · 技术社区  · 3 年前

    如果访问令牌已通过middleware.ts过期,则会向后端发送一个请求,并将新接收的访问令牌值保存为cookie。

    但我认为流量

    1. 中间件向cookie中注入一个新的访问令牌。

    2. 通过在页面组件内发送新的访问令牌来接收成员信息。

    在这个流中,当第一次在页面组件中呈现时,新的访问令牌值是未定义的,并且只有在再次刷新后才会显示成员信息。

    哪个部分错了?

    • 中间件.ts代码

    enter image description here

    • 第.tsx页
    export default async function Home() {
      const cookieStore = cookies();
      const accessTokenObj = cookieStore.get("accessToken");
      const refreshTokenObj = cookieStore.get("refreshToken");
      const accessToken = accessTokenObj?.value;
    
      // first rendering value is undefined
      // second rendering accessToken appears
      console.log("AccessToken Value  : ", accessToken);
    

    enter image description here

    enter image description here

    0 回复  |  直到 3 年前