Руль SJS Nodejs и JWT

#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