Я пытаюсь настроить аутентификацию на уровне пользователя с помощью node.js, поэтому я иду и делаю npm install -g jsonwebtoken --save.Однако при использовании require я сталкиваюсь с проблемами ('jsonwebtoken');и попробуйте скомпилировать мой код, он дает мне ошибку, описанную выше в заголовке.Теперь, по какой-то причине, когда я удаляю JWT и пытаюсь запустить свой код без него, он компилируется, но, очевидно, он не работает.Я попытался переустановить его, но безуспешно.Мой npm --version 6.3.0
узел --version v11.1.0
npm install -g jsonwebtoken --save + jsonwebtoken@8.4.0
код:
'use strict';
require('jsonwebtoken');
exports.generateToken = async (data) => {
return jwt.sign(data, global.SALT_KEY, { expiresIn: '1d' });
}
exports.decodeToken = async (token) => {
var data = await jwt.verify(token, global.SALT_KEY);
return data;
}
exports.authorize = function (req, res, next) {
var token = req.body.token || req.query.token || req.headers['x-access-token'];
if (!token) {
res.status(401).json({
message: 'Acesso Restrito'
});
} else {
jwt.verify(token, global.SALT_KEY, function (error, decoded) {
if (error) {
res.status(401).json({
message: 'Token Inválido'
});
} else {
next();
}
});
}
};
exports.isAdmin = function (req, res, next) {
var token = req.body.token || req.query.token || req.headers['x-access-token'];
if (!token) {
res.status(401).json({
message: 'Token Inválido'
});
} else {
jwt.verify(token, global.SALT_KEY, function (error, decoded) {
if (error) {
res.status(401).json({
message: 'Token Inválido'
});
} else {
if (decoded.roles.includes('admin')) {
next();
} else {
res.status(403).json({
message: 'Esta funcionalidade é restrita para administradores'
});
}
}
});
}
};
![enter image description here](https://i.stack.imgur.com/BowRJ.jpg)