Выход не закрывает сеанс [закрыто]Javascript

Форум по Javascript
Ответить
Anonymous
 Выход не закрывает сеанс [закрыто]

Сообщение Anonymous »

Я изучаю Nodejs, но я не понимаю, почему сеанс не закроется. Я нажимаю кнопку «Выход», и она перенаправляет меня на страницу входа в систему, но если я ввожу защищенный URL, он позволяет мне продолжить и показывает мне имя пользователя, которое я вышел из.document.getElementById("form-login").addEventListener("submit", async (e) => {
e.preventDefault();
const correo = document.getElementById("correo").value;
const contrasena = document.getElementById("contrasena").value;

const res = await fetch("http://localhost:3000/api/votantes/login", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({ correo, contrasena }),
credentials: "include" // 🔥 IMPORTANTE para enviar las cookies de sesión
});

if (res.ok) {
window.location.href = "votacion.html";
} else {
const data = await res.json();
alert(data.error);
}
});
< /code>
Функция входа в систему: < /p>
router.post('/login', (req, res) => {
const { correo, contrasena } = req.body;

db.query(
'SELECT * FROM votantes WHERE correo = ? AND contrasena = ?',
[correo, contrasena],
(err, resultados) => {
if (err) return res.status(500).json({ error: 'Error en login' });

if (resultados.length === 0) {
return res.status(401).json({ error: 'Credenciales inválidas' });
}

// Guardar usuario en la sesión
req.session.usuario = resultados[0];

res.json({ mensaje: 'Login exitoso' });
}
);
});
< /code>
Кнопка выхода: < /p>

Cerrar sesión

< /code>
Функция журнала: < /p>
function logout() {
fetch("http://localhost:3000/api/votantes/logout", {
credentials: "include"
})
.then(() => {
window.location.href = "login.html";
})
.catch((err) => {
console.error("Error al cerrar sesión:", err);
alert("Error al cerrar sesión");
});
}
< /code>
endpoint: < /p>
app.get("/logout", (req, res) => {
req.session.destroy((err) => {
if (err) {
console.error("Error al cerrar sesión:", err);
return res.status(500).json({ error: "No se pudo cerrar sesión" });
}
localStorage.removeItem("votante"); // limpia datos de sesión local
res.clearCookie("connect.sid");
res.json({ mensaje: "Sesión cerrada" });
});
});


Подробнее здесь: https://stackoverflow.com/questions/797 ... he-session
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»