【问题标题】:how to get cookies in next js如何在下一个js中获取cookie
【发布时间】:2022-01-02 14:51:42
【问题描述】:

我正在使用下一个 js 并尝试获取 cookie 值,这是我的代码:

import cookie from "js-cookie";

export default function Home({ token }) {
  return (
    <div className="flex flex-col items-center bg-reddit-dark py-2 text-white">
      {/* setting cookie */}
      <button
        onClick={() => {
          cookie.set("token", "ABCD");
        }}
      >
        login
      </button>
      {/* removing cookie */}
      <button
        onClick={() => {
          cookie.remove("token");
        }}
      >
        logout
      </button>
      <h1>token: {token}</h1>
    </div>
  );
}

export const getServerSideProps = async ({ req, res }) => {
  const res = await fetch(`http://localhost:5000/api/posts/`);

  const posts = await res.json();

  return {
    props: {
      token: req.cookies.token,
      posts,
    },
  };
};

所以我可以很好地获取和删除 cookie,但是当我尝试使用 getServerSideProps() 函数获取 cookie 的值时,它返回未定义,我已经从浏览器中清除了 cookie,但仍然没有工作,我看了无数次解决方案并复制它,但它也不起作用。

更新我在 _app.js 中调用了这个组件,现在我在每个单独的页面中都调用了它,所以我还有什么可以做的吗

【问题讨论】:

  • 如果您点击设置token cookie 的按钮然后重新加载页面,您在h1 中看不到正确的值吗?
  • 不,我没有看到 token 的值,它返回 undefined

标签: javascript reactjs cookies next.js


【解决方案1】:

根据this 的回答,您可以通过req.headers.cookie 访问您的cookie。

【讨论】:

  • req.cookies 也是访问getServerSideProps 中的cookie 的有效方式。
猜你喜欢
  • 2020-05-24
  • 2018-09-15
  • 2023-01-19
  • 2017-08-29
  • 2016-02-03
  • 2021-04-17
  • 1970-01-01
  • 2016-07-26
  • 1970-01-01
相关资源
最近更新 更多