cookie не работает, подключил к node js
Для проекта использую jwt, cookie ошибок в коде не обнаружено, но при попытке авторизоваться выдает в консоли следующее "
Error: "expiresIN" is not allowed in "options"
at D:\Synergy-project\nodeJS\node_modules\jsonwebtoken\sign.js:47:17
at Array.forEach (<anonymous>)
at validate (D:\Synergy-project\nodeJS\node_modules\jsonwebtoken\sign.js:43:6)
at validateOptions (D:\Synergy-project\nodeJS\node_modules\jsonwebtoken\sign.js:58:10)
at Object.module.exports [as sign] (D:\Synergy-project\nodeJS\node_modules\jsonwebtoken\sign.js:141:5)
at Query.<anonymous> (D:\Synergy-project\nodeJS\controllers\auth.js:31:35)
[nodemon] app crashed - waiting for file changes before starting...
". Я в javascript новичек, пытаюсь работать с ним только месяц, буду рад, если кто-то более опытный подскажет в чем проблема. Вот код
exports.login = async (req, res) => {
try {
const { login, password} = req.body;
if( !login || !password ) {
return res.status(400).render('login', {
message: ''
})
}
db.query('SELECT * FROM users WHERE login = ?', [login], async (error, results) => {
console.log(results);
if( !results || !(await bcrypt.compare(password, results[0].password)) ) {
res.status(401).render('login', {
message: 'Неверный логин или пароль'
})
} else {
const id = results[0].id;
const token = jwt.sign({ id }, process.env.JWT_SECRET, {
expiresIN: process.env.JWT_EXPIRES_IN
});
console.log("The token is: " + token);
const cookieOptions = {
expires: new Date(
Date.now() + process.env.JWT_COOKIE_EXPIRES * 24 * 60 * 60 * 1000
),
httpOnly: true
}
res.cookie('jwt', token, cookieOptions );
res.status(200).redirect("/");
}
})
} catch (error) {
console.log(error);
}
}
Ответы (1 шт):
Автор решения: Bogdan
→ Ссылка
хз как это работает, но оно работает-_- Я просто закомментировал вот эту строку: "expiresIN: process.env.JWT_EXPIRES_IN"