我的Next.js是14.1.0,我使用的是App Router.

async function Page() {
  const dataPromise: Promise<any> = getData();
  const data = await dataPromise;
  console.log('data: ', data);
  return (
    ....
  );
}

getData是一个简单的函数,我向Django rest API发出请求.如果cookie中有令牌,则可以向受保护的服务发出请求.

当我在客户端发出同样的请求时,响应是200(OK),因为我有一个令牌.然而,当我在服务器端发出请求时,我得到一个401(未经授权)错误.

我猜当我发出请求时,服务器端看不到我的令牌.我该如何解决这个问题?如何使用令牌进行服务器端提取?

推荐答案

当您从浏览器发出获取页面的请求时,会发送您的Cookie.您可以使用Next.js的cookies()函数获取令牌并将其传递给getData,在其中设置Authorization头:

import { cookies } from "next/headers";

export default async function Page() {
  const cookieStore = cookies();
  const accessToken = cookieStore.get("access_token");
  const data = await getData(accessToken);
  return "....";
}

您在 comments 中使用的Cookies.get('access_token'),我猜是使用browser APIs,而不是查看HTTP头.

Javascript相关问答推荐

使用useup时,React-Redux无法找到Redux上下文值

如何解决chrome—extension代码中的错误,它会实时覆盖google—meet的面部图像?'

在vercel throws上部署带有gunjs的sveltekit应用无法找到模块./' lib/文本编码'

查找最长的子序列-无法重置数组

无法检测卡片重叠状态的问题

如何在bslib nav_insert之后更改导航标签的CSS类和样式?

如何从网站www.example.com获取表与Cheerio谷歌应用程序脚本

如何控制Reaction路由加载器中的错误状态?

WP Bootstrap NavWaker:下拉菜单一次打开所有下拉菜单

查询参数未在我的Next.js应用路由接口中定义

当用户点击保存按钮时,如何实现任务的更改?

Vaadin定制组件-保持对javascrip变量的访问

每次重新呈现时调用useState initialValue函数

有没有一种直接的方法可以深度嵌套在一个JavaScript对象中?

无法重定向到Next.js中的动态URL

通过跳过某些元素的对象进行映射

我正在试着做一个TicTacToe Ai来和我玩.但是,我试着在第一个方块被点击时出现一个X,然后在第二个方块之后出现一个O

如何在Java脚本中并行运行for或任意循环的每次迭代

使用Java脚本替换字符串中的小文本格式hashtag

在采购unpept-visalizations.js时遇到问题