Reactjs 访问服务器上的Next.js客户端状态

Reactjs 访问服务器上的Next.js客户端状态,reactjs,redux,next.js,server-side-rendering,Reactjs,Redux,Next.js,Server Side Rendering,我正在尝试使用getServerSideProps函数在我的Next.js应用程序中获取动态数据。请求必须包含存储在客户端的令牌,以便在后端对用户进行身份验证 我尝试了以下方法: export async function getServerSideProps(context) { const token = window.localStorage.getItem('token') const data = await axios.get("/data", { hea

我正在尝试使用
getServerSideProps
函数在我的Next.js应用程序中获取动态数据。请求必须包含存储在客户端的令牌,以便在后端对用户进行身份验证

我尝试了以下方法:

export async function getServerSideProps(context) {
  const token = window.localStorage.getItem('token')
  const data = await axios.get("/data", { headers: { Authorization: `Bearer ${token}` }});
  return { props: { data } };
}
但是我得到了
ReferenceError:window没有定义
,这很有意义,因为请求是在服务器上发出的,而
window
对象不存在(它只存在于客户端)


我可以在
getServerSideProps
中访问客户端状态,或者在服务器上存储下一个状态吗?如果没有,看起来唯一的方法就是在客户端发出请求。

使用cookies。因为getServersideProps发生在服务器端呈现中,所以Windows或localStorage无法访问。使用cookie和js cookie库来设置和获取令牌。

请改用cookie。因为getServersideProps发生在服务器端呈现中,所以Windows或localStorage无法访问。使用cookie和js cookie library设置和获取令牌。

最好的方法是将令牌存储在cookie中,这样它将在客户端和服务器端的
窗口中可用,并且
本地存储
都存在于浏览器中,而不是在发生服务器端渲染的节点应用程序中。客户端代码应随请求一起发送JWT。最好的方法是将令牌存储在Cookie中,这样它将在客户端和服务器端
窗口
本地存储
上可用,这两者都存在于浏览器中,而不是发生服务器端渲染的节点应用程序中。客户端代码应该与请求一起发送JWT。