Проблема с токеном в следующей аутентификации и экспресс-jsJavascript

Форум по Javascript
Ответить
Anonymous
 Проблема с токеном в следующей аутентификации и экспресс-js

Сообщение Anonymous »

Я создаю authTeken в своем внутреннем приложении Express JS, мне нужно аутентифицировать свой маршрут, поэтому я создаю authentificateToken.js

Код: Выделить всё

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;
и я добавляю экземпляр axios для проверки этого токена и добавляю его в заголовок спереди.
Обратите внимание, что я использую 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»