Я не могу понять, как сделать маршрутизацию с nodejs. Я пытаюсь сделать JWT-аутентификацию для моего сайта электронной коммерции, и вот проблема, с которой я столкнулся:
это конечные точки 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, поэтому я не могу понять, как я могу получить доступ к этому токену или сделать какую-то проверку