Parsa
Parsa

Reputation: 179

How access server side cookies in a axios intercepor and outside of getServerSideProps()

In my nextjs app, I created a separate file for my axios interceptors and I'm making a request in getServerSideProps() which needs to have a Authorization header with some access token. I'm doing the logic for attaching headers inside mu interceptors but I need to access the cookie outside of getServerSideProps() and in my interceptor. Is there a way to achieve this behavior?

Upvotes: 1

Views: 1400

Answers (1)

Gabriel Linassi
Gabriel Linassi

Reputation: 551

Late answer but may be useful for someone. You'll need to create an API route to retrieve the cookie as usually you'll need to pass the req and res to the cookie lib you're using like cookies-next.

So you create a route like /api/token and then place a code like this:

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 });
}

and then in your interceptor, you do a fetch

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

Upvotes: 2

Related Questions