You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js 13 Route Handler无法获取Cookie值的问题求助

Next.js 13 Route Handler 无法获取Cookie的排查方案

1. 服务器组件的fetch请求未携带Cookie

你的Home组件是服务器组件(async函数且无'use client'指令),服务器组件内的fetch是在服务器端发起的,不会自动携带浏览器端的Cookie。此时需要手动将页面组件获取到的Cookie通过请求头传递给API Route:

修改页面组件代码:

export default async function Home() {
  const cookieStore = cookies();
  const accessTokenObj = cookieStore.get("accessToken");
  const refreshTokenObj = cookieStore.get("refreshToken");
  const accessToken = accessTokenObj?.value;
  const refreshToken = refreshTokenObj?.value;

  console.log("Page Component refreshToken : ", refreshToken);
  
  // 手动在请求头中携带Cookie
  const getTestMessage = await fetch("/api/test", {
    headers: {
      Cookie: `accessToken=${accessToken ?? ''}; refreshToken=${refreshToken ?? ''}`
    }
  });

  const data = await getTestMessage.json();
  console.log("getTestMessage : ", data);
}

2. 切换为客户端组件发起请求

如果希望请求由浏览器端发起(自动携带Cookie),可将Home组件改为客户端组件,添加'use client'指令并使用useEffect处理异步请求:

'use client';

import { useEffect } from 'react';

export default function Home() {
  useEffect(() => {
    async function fetchTestData() {
      // 浏览器端发起的fetch会自动携带同域Cookie
      const res = await fetch("/api/test");
      const data = await res.json();
      console.log("getTestMessage : ", data);
    }
    fetchTestData();
  }, []);

  return <div>测试页面</div>;
}

3. 检查Route Handler的依赖导入

确保在API Route中正确导入cookies工具:

import { cookies, NextRequest, NextResponse } from 'next/server';

export async function GET(request: NextRequest) {
  const cookieStore = cookies();
  const refreshTokenObj = cookieStore.get("refreshToken");
  console.log("refreshToken : ", refreshTokenObj);
  
  return NextResponse.json({ refreshToken: refreshTokenObj?.value });
}

4. 检查Cookie的SameSite属性

若Cookie的SameSite属性设置为Strict,服务器端发起的内部请求可能无法携带该Cookie。可在Cookie设置时将其改为Lax(同域场景下更兼容):

// 示例:设置Cookie时指定SameSite
response.cookies.set('refreshToken', tokenValue, {
  httpOnly: true,
  sameSite: 'lax',
  path: '/'
});

内容的提问来源于stack exchange,提问作者gndy Br

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 23:10:37