Код: Выделить всё
const jwt = require("jsonwebtoken");
const authenticateToken = (req, res, next) => {
const authHeader = req.headers["authorization"];
const token = authHeader && authHeader.split(" ")[1];
if (!token) {
return res.status(401).json({ message: "Access token required" });
}
jwt.verify(token, process.env.NEXTAUTH_SECRET, (err, user) => {
if (err) {
return res.status(403).json({ message: "Invalid token" });
}
req.user = user;
next();
});
};
module.exports = authenticateToken;
Обратите внимание, что я использую Nextauth для своего приложения nextjs
Код: Выделить всё
import axios from 'axios'
import { getSession} from 'next-auth/react'
const axiosInstance = axios.create({
baseURL: process.env.NEXT_PUBLIC_API_URL
})
axiosInstance.interceptors.request.use(
async config => {
if (typeof window === 'undefined') return config
let session = null
try {
session = await getSession().catch(err => {
console.error('getSession failed (non-fatal):', err)
return null
})
} catch (err) {
console.error('getSession unexpected error (ignored):', err)
return config
}
console.log('Available session', session)
if (session?.accessToken) {
config.headers.Authorization = `Bearer ${session.accessToken}`
} else {
console.log('Available session keys:', session ? Object.keys(session) : 'No session')
}
return config
},
error => {
console.error('Request interceptor error:', error)
return Promise.reject(error)
}
)
axiosInstance.interceptors.response.use(
response => {
return response
},
async error => {
console.error('Response error:', error.response?.status, error.message)
if (error.response?.status === 401 || error.response?.status === 403) {
console.log('token not.......');
}
return Promise.reject(error)
}
)
export default axiosInstance
У меня нет проблем, когда я работаю локально, но когда я развертываю в Верселе, возникает эта проблема.
Подробнее здесь: https://stackoverflow.com/questions/797 ... express-js
Мобильная версия