考虑以下代码
Index.getInitialProps = async function({req}) {
const res = await fetch("http://localhost/api/tiles");
const json = await res.json();
}
假设/api/tiles
端点需要访问uid
用户的 cookie。通常,一个人会这样做{credentials: "include"}
。但是我如何在 Next.js 中做到这一点?
考虑以下代码
Index.getInitialProps = async function({req}) {
const res = await fetch("http://localhost/api/tiles");
const json = await res.json();
}
假设/api/tiles
端点需要访问uid
用户的 cookie。通常,一个人会这样做{credentials: "include"}
。但是我如何在 Next.js 中做到这一点?
当您使用时React
(NextJS 是基于 ReactJS 构建的),您可以使用它react-cookie
来获取存储在系统中的 cookie。
安装react-cookie
npm install react-cookie
如果你使用带有版本的 Reactjs,>= 16.8.0
你可以使用 React 钩子。
const [cookies, setCookie, removeCookie] = useCookies(['cookie-name']);
您可以设置 cookiesetCookie(name, value, [options])
和获取 cookiecookie.get(name, [options])
所以在你的情况下,代码应该看起来像
import { useCookies } from 'react-cookie';
const [cookies, setCookie] = useCookies(['name']);
Index.getInitialProps = async functon({req}) {
cookie = cookies.get(name)
const res = await fetch("http://localhost/api/tiles", cookie);
const json = await res.json();
}