#node.js #jwt #handlebars.js
Вопрос:
Я пытаюсь выполнить аутентификацию с помощью JWT на сервере, используя Nodejs и Handlebarjs, но проблема в том, что я сгенерировал JWT на стороне сервера, отрисовал и сохранил его в локальном хранилище в Handlebarjs, но когда промежуточное программное обеспечение проверило токен, он показал неопределенный, хотя, когда я проверил локальное хранилище, он был там. Есть какие-нибудь предложения?
Внутренний код:
const tokenUser = {user: existingUser._id}
const token = jwt.sign(tokenUser, 'gmndshhrjvjhsw4bnds221a');
res.cookie('token', token, {
httpOnly: true,
});
res.render('home1', {token: token})
auth.js middleware code:
const jwt = require('jsonwebtoken');
function auth(req, res, next) {
try {
const token = req.cookies.token;
console.log(token)
if(!token) return res.status(401).json({error: "Unauthorized"});
const verified = jwt.verify(token, 'gmndshhrjvjhsw4bnds221a');
req.user = verified.user;
next();
} catch (err) {
console.error(err);
res.status(401).json({
error: "Unauthorized"
})
}
}
module.exports = auth;
localStorage получил токен на домашней странице, но он показал несанкционированное:
Комментарии:
1. Если токен хранится в локальном хранилище браузера, то он не находится в файле cookie, но ваш сервер пытается его получить
req.cookies
.2. Он также хранится в файлах cookie, а также
3. Тот, который хранится в файлах cookie, такой же, как и тот, который хранится в localStorage, но при проверке промежуточного программного обеспечения он возвращает неопределенное значение
4. Похоже, вы не используете токен в localStorage. Можете ли вы подтвердить, что маркер находится в файлах cookie с вашим запросом?
5. Да, маркер находится в файлах cookie