Dan*_*ein 15 javascript node.js next.js
通常,在使用 Express 时,“res”对象中似乎有“cookie”,因此您可以执行以下操作:
res.cookie('session', sessionCookie, options);
Run Code Online (Sandbox Code Playgroud)
NextJS 在 Next 9 提供的 API 路由中,查看 res 的时候,是不存在的。有没有办法在 Next API Route 函数中为响应对象设置 cookie?
Kev*_*Law 27
改编自官方 repo 中间件示例,您可以Set-Cookie通过res如下方式设置标头:
import { serialize } from 'cookie';
function (req, res) {
// ...
// setHeader(headerName: string, cookies: string | string[])
// can use array for multiple cookies
res.setHeader('Set-Cookie', serialize('token', 'token_cookie_value', { path: '/' }));
}
Run Code Online (Sandbox Code Playgroud)
我刚刚在 Next.js 中找到了一种更简单的方法来做到这一点,尽管使用了一个库——cookie -next
跑步 npm install --save cookies-next
如果您使用的 next.js 版本高于 12.2.0,则需要使用 cookies-next 2.1.0 或更高版本
import { getCookies, setCookie, deleteCookie } from 'cookies-next';
// we can use it anywhere
getCookies();
getCookie('key');
setCookie('key', 'value');
deleteCookie('key');
Run Code Online (Sandbox Code Playgroud)
getServerSideProps或pages/api
import { getCookies, getCookie, setCookie, deleteCookie } from 'cookies-next';
export default async function handler(req, res) {
setCookie('server-key', 'value', { req, res, maxAge: 60 * 60 * 24 });
getCookie('key', { req, res });
getCookies({ req, res });
deleteCookie('key', { req, res });
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8335 次 |
| 最近记录: |