ExpressJs Авторизация JWT - PullRequest
0 голосов
/ 14 марта 2020

Я не могу понять, как сделать маршрутизацию с nodejs. Я пытаюсь сделать JWT-аутентификацию для моего сайта электронной коммерции, и вот проблема, с которой я столкнулся: enter image description here

это конечные точки get / post для / auth / login

app.post("/auth/login", (req, res) => {
  authValidation
    .validateLogin(connection, req.body.username, req.body.password)
    .then(response => {
      if (response) {
        jwt.sign(
          { username: req.body.username },
          authPrivateKey,
          (err, token) => {
            if (!err) {
              res.send({ token });
            }
          }
        );
      } else {
        res.send({ err: "Incorrect credentials" });
      }
    });
});

app.get("/auth/login", (req, res) => {
  res.sendFile(path.join(__dirname + "/authentication/login.html"));
});

и это событие submit btn

const submitBtn = document.querySelector(".submit-btn");
submitBtn.addEventListener("click", event => {
  event.preventDefault();

  const username = document.querySelector("input[name='username']").value;
  const password = document.querySelector("input[name='password']").value;

  fetch("/auth/login", {
    method: "POST",
    body: JSON.stringify({
      username,
      password
    }),
    headers: {
      "Content-type": "application/json"
    }
  })
    .then(res => res.json())
    .then(res => {
      if (res.token) {
        localStorage.setItem("jwt-token", res.token);
        window.location.replace("/");
      } else {
        console.log(res.err);
      }
    });
});

Поэтому я хочу реализовать какое-то условие для конечной точки get, чтобы она выполнялась только в том случае, если пользователь не вошел в систему. Теперь мне удается решить проблему с перенаправлением, но если я сделаю запрос get в / auth / login, он все равно будет работать, даже если я вошел в систему. Мой jwt хранится в localstorage, поэтому я не могу понять, как я могу получить доступ к этому токену или сделать какую-то проверку

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