NextJs中服务器/客户端之间的Cookie共享



假设您有一个独立的服务器作为数据层,然后是一个Next.js应用程序,其唯一目的是在服务器端渲染React,偶尔从getServerSideProps预取数据。除此之外,大多数交互都直接发生在浏览器端客户端和独立服务器之间(试图避免不必要的Next.js中间人/冷启动(。现在,如果我试图通过cookie设置身份验证令牌,是否有一种优雅的方法可以在Next.js和客户端之间有效地共享该cookie,以便在请求时对客户端进行身份验证,以及Next.jsgetServerSideProps函数?

我想知道我是否需要一个单一的/api/loginNext.js无服务器函数;我会自己拿饼干,也会把它直接传给你(客户(";

这一切有道理吗?在我的例子中,独立服务器是在NestJS上构建的。我可以使用react ssr这样的工具来渲染服务器端的所有内容,这可能是一个很好的解决方案,因为几乎每个页面都有阻塞数据的要求,但我正在努力理解我的选择,这似乎是Next.js等框架常见的问题。

您可以使用jscookie直接从渲染器设置cookie
那么您所需要做的就是从req.headers.cookie获取cookie。

import Cookie from "js-cookie";
function Index() {

function setCookie() {
Cookie.set("yourCookieName", "yourCookieValue");
}
return (
<div>
<button onClick={setCookie}>set cookie</button>
</div>
);
};
export async function getServerSideProps({ req }) {
console.log(req.headers.cookie)
return { props: {} }
}
export default Index;

最新更新