【发布时间】:2019-03-12 19:32:39
【问题描述】:
如何在 JWT 中获取到期时间? 我想注意每个用户登录令牌的过期时间,现在我可以显示他们的用户 ID、电子邮件 ID 但无法显示 expiresIn 时间。请指出我应该在哪里编辑我的代码以显示 expiresIn 字段。
router.post("/login", (req, res, next) => {
User.find({ username: req.body.username })
.exec()
.then(user => {
if (user.length < 1) {
return res.status(401).json({
message: "Auth failed"
});
}
bcrypt.compare(req.body.password, user[0].password, (err, result) => {
if (err) {
return res.status(401).json({
message: "Auth failed"
});
}
if (result) {
const token = jwt.sign(
{
username: user[0].username,
email: user[0].email,
userId: user[0]._id,
},
process.env.JWT_KEY,
{
expiresIn: "10h"
}
);
return res.status(200).json({
message: "Auth successful",
token: token,
userId: user[0]._id,
expiresIn: user[0].exp,
});
}
res.status(401).json({
message: "Auth failed"
});
});
})
.catch(err => {
console.log(err);
res.status(500).json({
error: err
});
});
});
这是我现在得到的输出。
{ "message": "认证成功", “令牌”: “eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImRhcnNoYW4iLCJlbWFpbCI6ImRhcnNoYW5hbi4yNEBnbWFpbC5jb20iLCJ1c2VySWQiOiI1YjU3MTcxNmRjODlhYzZiNGUyY2E0MTciLCJpYXQiOjE1Mzg5ODEyOTYsImV4cCI6MTUzONn0.k0PVole653f_pB3CrQLtdUmv7-c00x1irbQph2i2XaE” “用户 ID”:“5b571716dc89ac6b4e2ca417”, “电子邮件”:“darsh4@gmail.com”}
【问题讨论】:
-
您的代码与您的输出不匹配
标签: node.js mongodb express jwt express-jwt