Ошибка входа (вход в систему успешен, если адрес электронной почты действителен, но пароль неверен) - PullRequest
0 голосов
/ 16 апреля 2020
const User = require("../models/user.js");
const { check, validationResult } = require('express-validator');
const cors = require("cors")
var jwt = require('jsonwebtoken');
var expressJwt = require('express-jwt');

exports.signin = (req,res) => {
  const errors = validationResult(req);
  const {email, password} = req.body;

  if (!errors.isEmpty()){
    return res.status(422).json({error : errors.array()[0].msg});
  }    

  User.findOne({ email }, (err, user) => {
    if (err || !user) {
      return res.status(400).json({
        error: "USER email does not exists"
      });
    }

    if (!user.autheticate(password)) {
      return res.status(401).json({
        error: "Email and password do not match"
      });
    }

    //  generating token

    var token = jwt.sign({_id: user._id}, process.env.SECRET);

    //put these token into cookie token
    res.cookie("token",token, {expire: new Date() + 9999});

    //send response to front end
    const {_id, name , email , role } = user;
    return res.json({token , user: {_id , name , email , role}});
  });
}

exports.signout = function(req, res) {
  res.clearCookie("token");
  return   res.json({
    message: "user siggned out",
  })
}

Это код для входа в систему, и вы сталкиваетесь с ошибкой, что эти функции не работают полностью.
Он проверяет, существует ли электронная почта, затем покажет все данные или может показать успешную регистрацию.

Если ввести действительный адрес электронной почты с неверным паролем, чтобы он вошел в систему.

В чем будет ошибка и логин c для него?

...