Вход в IONIC 4 получает ответ, но не может прочитать пользовательское сообщение об ошибке - PullRequest
0 голосов
/ 17 октября 2019

Я создал логин для IONIC 4 в Express, логин работает, но когда пароль неверен, я хочу показать пользовательское сообщение. Я не могу показать это.

Вот ответ, который я получаю в консоли браузера:

error: Object { message: "Password not valid!", status: "401" }
headers: Object { normalizedNames: Map(0), lazyUpdate: null, lazyInit: lazyInit()}
message: "Http failure response for http://localhost:3000/login: 401 Unauthorized"
name: "HttpErrorResponse"
ok: false
status: 401
statusText: "Unauthorized"
url: "http://localhost:3000/login"

Мой код для входа в экспресс:

const  findUserByEmail  = (email, cb) => {
    return  mc.query('SELECT * FROM user_login WHERE email = ?',[email], (err, row) => {
            cb(err, row); console.log(err);
    });
}

router.post('/login', (req, res) => {
    const email = req.body.email;
    const form_password = req.body.password;
    //console.log(form_password );
    findUserByEmail(email, (err, user) => {
        console.log(user);
        console.log("Test1");
        if (err) return res.status(500).send({ "message": 'Server error!!', "status": '500' });
        console.log("Test2");
        if (!user[0]) return res.status(404).send({ "message": 'User not found!', "status": '404' });
        console.log("Test3");
        console.log(user);
        const result = bcrypt.compareSync(form_password, user[0].password);
        if (!result) return res.status(401).send({ "message": 'Password not valid!!', "status": '401' });
        const expiresIn = 24 * 60 * 60;
        const accessToken = jwt.sign({ id: user[0].id }, SECRET_KEY, {
            expiresIn: expiresIn
        });
        res.status(200).send({ "user": user, "access_token": accessToken, "expires_in": expiresIn, "message": 'Success!!', "status": '200' });
    });
});

Мой код входа в IONIC 4:

  login(form){
    this.authService.login(form.value).subscribe(result => {
        this.router.navigateByUrl(`dashboard`);
      },
      error => {    
        this.showError = true;
        console.log(error);
        this.errorMessage = error.statusText;
      });
  }

Я хочу показать «Пароль не действителен !!», но отображается «Несанкционированный»

1 Ответ

1 голос
/ 17 октября 2019

заплатите за возвращенный объект.

this.errorMessage = error.statusText;

должно быть

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