ClientSide Уведомление о неудачной регистрации - PullRequest
1 голос
/ 08 мая 2019

У меня есть проект node.js, в котором я могу заполнить форму входа в систему, которая будет отправлена ​​на мой server.js в виде URL-параметров. Если отправленные данные могут быть проверены как зарегистрированные, клиент войдет в систему. Моя проблема в том, как уведомить клиента, если он не работает? Мой login.html содержит div, который будет показан, если он запущен моим файлом login.js. Но как мне активировать триггер, можно ли отправлять URL-параметры клиенту и изменять поведение сайта?

server.js

app.get("/signUp/:username/:password", (req, res) => {
    auth.signUp({
        username: req.params.username,
        password: req.params.password
    }, (result) => {
        if (result) {
            res.redirect("../../index.html");
        } else {
            res.redirect("../../index.html");
            // res.send("Login failed");
        }
    })
})
app.get("/signIn/:username/:password", (req, res) => {
    auth.signIn({
        username: req.params.username,
        password: req.params.password
    }, (result) => {
        if (result) {
            res.redirect("../../index.html");
        } else {
            res.send("Login failed");
        }
    })
})

login.js Клиентская сторона

signIn = () => {
    let user = document.getElementById('signDiv-username').value;
    let pass = document.getElementById('signDiv-password').value;
    hideErrorLog();
    window.location.replace("/signIn/" + user + "/" + pass);
}
signUp = () => {
    let user = document.getElementById('signDiv-username').value;
    let pass = document.getElementById('signDiv-password').value;
    hideErrorLog();
    window.location.replace("/signUp/" + user + "/" + pass);
}

hideErrorLog = () => {
    let errorLog = document.getElementById("error-log");
    errorLog.style.display = "none";
    errorLog.innerText = "";
}
showErrorLog = (signUp) => {
    let errorLog = document.getElementById("error-log");
    errorLog.style.display = "block";
    if (signUp) {
        errorLog.innerText = "Benutzername existiert bereits!";
    } else {
        errorLog.innerText = "Benutzername/Passwort falsch!";
    }
}

1 Ответ

0 голосов
/ 08 мая 2019

Я вижу, что вы вызывали API-интерфейсы SignUp и SignIn, используя window.location.replace (), и вы просто заменяете имя пользователя и пароль в качестве части URL-адреса, который не является способом вызова API AFAIK. А также никогда не передавайте конфиденциальные данные, такие как имя пользователя и пароль, в URL, отправляйте их как часть тела запроса.

Вам нужно использовать fetch () и вызывать showErrorLog () внутри catch (), что означает ошибку в вызове API.

Пример кода извлечения

fetch('http://example.com/movies.json')
  .then(function(response) {
    // Add some code here
  })
  .then(function(myJson) {
    // call showErrorLog() here
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...