Cara eu acho que o middleware do nextjs pode fazer isso, no react eu faço usando axios eu uso o interceptors.request.

import axios from 'axios'; const instance = axios.create({ baseURL: window.location.hostname === 'localhost' ? 'http://localhost:5001/api/v1' : 'https://api.mysite.com/api/v1' }); instance.defaults.headers.common['Content-Type'] = 'multipart/form-data'; //validate response instance.interceptors.response.use((response) => { return response; }, (error) => { if (error.response.status === 401) { return window.location.href = '/login' } return Promise.reject(error); }); // Set the AUTH token for any request instance.interceptors.request.use( (config) => { const token = localStorage.getItem('token'); config.headers.Authorization = token ? Bearer ${token} : ''; return config; } ) export default instance;