【发布时间】:2020-02-29 03:49:47
【问题描述】:
我有一个节点 js 应用程序。我需要从生成的令牌中获取密钥,以使用我的单独验证方法。是否有任何解码令牌方法或从 JWT 令牌方法中拆分密钥?因为我目前通过向标头发送电子邮件地址来提供个人令牌生产,所以我需要一种可以从令牌中获取密钥的方法来防止这种情况。这是我的代码。
这是我在登录代码部分的令牌创建部分:(如果密码为真:)
const secretKey= user.email;
const token = jwt.sign({
email:user.email,
password: user.password
},
secretKey,
{
expiresIn :"2h"
}
)
return res.status(200).send({ message: 'success', token: token});
然后在中间件中我使用以下代码:
const jwt = require('jsonwebtoken');
module.exports = (req, res, next) => {
try {
const token = req.headers.authorization.split(" ")[1];
const decodedToken = jwt.verify(token, req.headers.user);
req.userData = decodedToken;
next();
}catch(error) {
return res.status(401).send({
message: 'Auth failed'
});
}
还有我的 app.js:
const checkAuth = require('../middleware/checkauth');
router.get('/api/company',checkAuth,companyController.list);
编辑:我了解到javascript中没有可以解码令牌密钥的函数。密钥是使用特殊算法创建的。
【问题讨论】:
标签: javascript node.js jwt authorization backend