55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
// ================================
|
|
// UTILIDADES DE AUTENTICACIÓN
|
|
// ================================
|
|
|
|
/** Devuelve el token JWT o null si no hay sesión. */
|
|
function getToken() {
|
|
return localStorage.getItem("token");
|
|
}
|
|
|
|
/** Devuelve el objeto usuario guardado en sesión, o null. */
|
|
function getUsuario() {
|
|
const u = localStorage.getItem("usuario");
|
|
return u ? JSON.parse(u) : null;
|
|
}
|
|
|
|
/**
|
|
* Verifica que el usuario esté autenticado.
|
|
* Si no lo está, redirige a login.html y devuelve null.
|
|
*/
|
|
function verificarAuth() {
|
|
if (!getToken()) {
|
|
window.location.href = "login.html";
|
|
return null;
|
|
}
|
|
return getUsuario();
|
|
}
|
|
|
|
/** Cierra la sesión eliminando los datos locales y redirige al login. */
|
|
function cerrarSesion() {
|
|
localStorage.removeItem("token");
|
|
localStorage.removeItem("usuario");
|
|
window.location.href = "login.html";
|
|
}
|
|
|
|
/**
|
|
* Muestra el nombre del usuario y el botón de cerrar sesión en el header.
|
|
* Llama a esta función después de cargar el header.
|
|
*/
|
|
function mostrarSesionEnHeader() {
|
|
const usuario = getUsuario();
|
|
const contenedor = document.getElementById("header-sesion");
|
|
if (!contenedor) return;
|
|
|
|
if (usuario) {
|
|
contenedor.innerHTML = `
|
|
<span class="header-usuario">👤 ${usuario.nombre}</span>
|
|
<button class="btn-cerrar-sesion" onclick="cerrarSesion()">Salir</button>
|
|
`;
|
|
} else {
|
|
contenedor.innerHTML = `
|
|
<a href="login.html" class="btn-sesion">Iniciar sesión</a>
|
|
`;
|
|
}
|
|
}
|