Ошибка: secretOrPrivateKey должен иметь значение - PullRequest
0 голосов
/ 02 ноября 2019

Я использую jwt для создания токена, но когда я захожу через почтальона, я получаю сообщение об ошибке «Ошибка: secretOrPrivateKey должен иметь значение» из моей консоли. Я приложил свой логин. Пожалуйста, кто-нибудь, кто может помочь мне

exports.login = (req, res, next) => {
  User.findOne({
    where: {
      email: req.body.email
    }
  })
    .then(user => {
      if (!user) {
        return res.status(401).json({
          message:
            "Auth failed!! either the account does't exist or you entered a wrong account"
        });
      }
      bcrypt.compare(req.body.password, user.password, (err, result) => {
        if (err) {
          return res.status(401).json({
            message: "Auth failed",
            token: token
          });
        }
        if (result) {
          const token = jwt.sign(
            {
              email: user.email,
              password: user.id
            },
            process.env.JWT_KEY,
            {
              expiresIn: "1h"
            }
          );

          res.status(200).json({
            message: "Auth granted, welcome!",
            token: token
          });
        }
      });
    })
    .catch(err => {
      console.log(err);
      res.status(500).json({
        error: err
      });
    });
};

это мой файл env.json

{
    "env":{
        "MYSQL":"jllgshllWEUJHGHYJkjsfjds90",
        "JWT_KEY": "secret"
    }
}

enter image description here

enter image description here

Ответы [ 2 ]

0 голосов
/ 02 ноября 2019

Я не знаю, какой пакет вы используете для загрузки переменных среды, но самый простой способ - использовать пакет dotenv .

После установки с помощью npm i dotenv импортируйте его как можно раньше. насколько это возможно в главном файле вашего приложения, например:

require("dotenv").config();

Создайте файл .env в корневой папке приложения с этим содержимым (как вы видите, формат ключ = значение)

MYSQL=jllgshllWEUJHGHYJkjsfjds90
JWT_KEY=secret

Затем вы можете получить доступ к их значениям, как вы уже сделали:

process.env.JWT_KEY

.env file:

enter image description here

0 голосов
/ 02 ноября 2019

Вы уверены, что process.env.JWT_KEY имеет допустимое значение? Я считаю, что это undefined или null.

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