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);
});
}
- Как получить доступ к пользовательскому сообщению моего несанкционированного ответа "Неверное имя пользователя или пароль" в ошибке перехвата функции входа?
- Кажется, что функция входа в систему 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. С новым пакетом теперь я могу делать гораздо больше (обновить токен, вернуть пользовательские сообщения с сервера и т. Д.).