Потребность в поле JWT expiresIn для отображения на консоли - PullRequest
0 голосов
/ 08 октября 2018

как узнать время истечения в JWT?Я хочу, чтобы каждый пользователь заметил время истечения токена входа в систему, сейчас я могу отобразить его userId, идентификатор электронной почты, но не могу отобразить 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", "идентификатор пользователя": "5b571716dc89ac6b4e2ca417", "электронная почта": "darsh4@gmail.com"}

1008 *

1 Ответ

0 голосов
/ 08 октября 2018

Похоже, вы не отправили правильный expiration ответ.

 let expiration = '10h'
 const token = jwt.sign(
            {
              username: user[0].username,
              email: user[0].email,
              userId: user[0]._id,
            },
            process.env.JWT_KEY,
            {
              expiresIn: expiration
            }
          );
          return res.status(200).json({
            message: "Auth successful",
            token: token,
            userId: user[0]._id,
            expiresIn: expiration, //set expiration time
          });

Ссылочная ссылка, которая поможет вам: здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...