Aurelia auth - пользовательское ответное сообщение - ошибка консоли

Используя этот плагин aurelia-auth вместе с.NET Core webAPI, я хочу вернуть пользовательскую ошибку, когда пользователь пытается войти в систему с неверным именем пользователя и / или паролем.

WebAPI:

public HttpResponseMessage Login()
{
    if (passwordValid)
    {
        return Request.CreateResponse(new LoginResponseViewModel { Token = token });
    }
    else
    {
        return Request.CreateResponse(HttpStatusCode.Unauthorized, "Incorrect username or password!");
    }
}

скрипт

logIn(email, password) {
    return this.auth.login(email, password)
        .then(response => {
            console.log("success logged " + response);
        })
        .catch(err => {
            console.log("login failure: " + err);
        });
}
  1. Как получить доступ к пользовательскому сообщению моего несанкционированного ответа "Неверное имя пользователя или пароль" в ошибке перехвата функции входа?
  2. Кажется, что функция входа в систему aurelia-auth должна получить httpStatusCode.Unauthorized для того, чтобы он понял, что пароль / имя пользователя был неверным, но это генерирует 401 (Unauthorized) ошибка консоли. Могу ли я подавить эту ошибку консоли или, возможно, вернуть результат json, который понимает aurelia-auth?

1 ответ

Решение

1. Как получить доступ к пользовательскому несанкционированному ответному сообщению

Ответ сервера:

return Request.CreateResponse(HttpStatusCode.Unauthorized, "My message");

Клиент:

return this.auth.login(email, password)
    .then(response => {
        console.log("success logged " + response);
    })
    .catch(error => error.json().then(serverError =>
        console.log(serverError) //My message 
    ));

2. Подавить ошибку консоли или вернуть результат json, который понимает aurelia-auth

В текущей версии aurelia-auth невозможно вернуть результат json, который понимает aurelia-auth.

Я решил заменить мой текущий пакет aurelia-auth аутентификацией aurelia.

Aurelia-аутентификация - это форк aurelia-auth, который сам по себе является портом великой библиотеки Satellizer. С новым пакетом теперь я могу делать гораздо больше (обновить токен, вернуть пользовательские сообщения с сервера и т. Д.).

Другие вопросы по тегам