如何在axios拦截器和getServerSideProps()之外访问服务器端cookie



在我的nextjs应用程序中,我为我的axios拦截器创建了一个单独的文件,我在getServerSideProps()中发出请求,它需要有一个带有一些访问令牌的授权头。我正在做的逻辑附加头在mu拦截器,但我需要访问getServerSideProps()和我的拦截器之外的cookie。有办法实现这种行为吗?

回答晚了,但可能对某些人有用。你需要创建一个API路由来检索cookie,因为通常你需要将reqres传递给你正在使用的cookie库,如cookies-next

创建一个类似/api/token的路由,然后放置这样的代码:

import { getCookie } from 'cookies-next';
import type { NextApiRequest, NextApiResponse } from 'next';
export default function handler(req: NextApiRequest, res: NextApiResponse) {
const token = getCookie('site-jwt', { req, res });
res.status(200).json({ token });
}

然后在拦截器中,取回

const { token } = await fetch('/api/token').then(r => r.json())

最新更新