При создании логина появляется пустой объект

1

Пустой объект приходит для входа в систему. Использование регистрации, выполненное по подобию логина, и поэтому все работает. Отправляя запрос через Postman, вы можете зарегистрировать пользователя и проверить, существует ли такой файл в базе данных. Когда вы отправляете запрос для входа, вместо токена, сообщение приходит из последнего блока "else" "Пользователь с таким адресом электронной почты не найден".

      const bcrypt = require('bcryptjs');
      const jwt = require('jsonwebtoken');
      const User = require('../models/User');
      const keys = require('../config/keys');

      module.exports.login = async function (req, res) {
      console.log('req.body', req.body);   //Empty object {}
      const candidate = await User.findOne({
      email: req.body.email
      });
      if (candidate) {
      const passwordResult = bcrypt.compareSync(req.body.password, 
      candidate.password);

      if (passwordResult) {
        const token = jwt.sign({
            email: candidate.email,
            userId: candidate._id
        }, keys.jwt, {expiresIn: 60 * 60});

        res.status(200).json({
            token: 'Bearer ${token}'
        })
      } else {
        res.status(401).json({
            message: 'Passwords do not match'
        })
      }
      } else {
           console.log(req.body.email);
           console.log(candidate);
        res.status(404).json({
            message: 'User with such email address not found'
       })
       }
       };

       module.exports.register = async function (req, res) {
           console.log('req.body', req.body);
           const candidate = await User.findOne({
           email: req.body.email
       });
       if (candidate) {
       res.status(409).json({
          message: "User with this email address already exists"
       })
       } else {
          const salt = bcrypt.genSaltSync(10);
          const password = req.body.password;
          const user = new User({
              email: req.body.email,
              password: bcrypt.hashSync(password, salt)
       });
          try {
              await user.save();
              res.status(201).json(user)
       } catch (e) {
       }
       }
       };

! [Регистрация работает правильно] (https://imgur.com/a/9T5vRMD)

! [Вход не работает правильно] (https://imgur.com/a/rQOiw2w) "Должен быть токеном, потому что этот пользователь уже существует"

  • 0
    В чем здесь проблема?
  • 0
    Можете ли вы проверить свой req.body.email? Я имею в виду, что находится внутри req.body.email. Он содержит идентификатор электронной почты, который вы отправляете с внешнего интерфейса при входе в систему.
Показать ещё 3 комментария
Теги:

1 ответ

0

Я сам нашел ответ. Я использую "x-form-urlencoded", логин работает правильно, и я получаю действительный токен. По-видимому, проблема заключается в внутренней реализации Почтальона, поскольку данные, введенные с помощью "rav", также должны быть действительными.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню