为什么使用Cookie

为什么使用 cookie 来存储 accessToken

通常,我们会使用 localStorage 来存存储 accessToken,但是当我们需要实现路由拦截时,通过 middleware 实现时,我们在 middleware 中获取不到

localStorage 中的值,关于 middleware 的使用可以参考 https://nextjs.org/docs/app/building-your-application/routing/middleware

因此,我们使用 cookie 来存储 accessToken。

注意

在使用 getServerSideProps 获取数据时,需要手动设置 Cookie,例如下面这样,否则不会自动带上 Cookie。

const cookie = context.req.headers.cookie;
const postId: any = context.params.postId;
try {
  const post = await getPostById(postId, {
    headers: {
      Cookie: cookie,
    },
  });

  return {
    props: {
      post,
    },
  };
} catch (error) {
  console.log(`获取帖子详情失败:${error}`);
  return {
    props: {
      post: null,
    },
  };
}