// ================================
// 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 y recarga la página actual (o va a index si es protegida). */
function cerrarSesion() {
localStorage.removeItem("token");
localStorage.removeItem("usuario");
const paginasProtegidas = ["intenciones.html", "diario-oracion.html"];
const actual = location.pathname.split("/").pop();
if (paginasProtegidas.includes(actual)) {
window.location.href = "index.html";
} else {
location.reload();
}
}
/**
* Muestra el nombre del usuario y el botón de cerrar sesión en el header.
* Sin sesión: muestra botones que abren el modal de auth.
*/
function mostrarSesionEnHeader() {
const usuario = getUsuario();
const contenedor = document.getElementById("header-sesion");
if (!contenedor) return;
if (usuario) {
contenedor.innerHTML = `
👤 ${usuario.nombre}
`;
} else {
contenedor.innerHTML = `
`;
}
}
// ================================
// MODAL DE AUTENTICACIÓN
// ================================
/** Resuelve la base de la API aunque api-config.js no esté cargado en la página. */
function _apiBase() {
if (typeof API_BASE !== "undefined") return API_BASE;
return (location.hostname === "localhost" ||
location.hostname === "127.0.0.1" ||
location.hostname === "")
? "http://localhost:8080"
: "https://recursos-catolicos.es:8080";
}
/** Crea e inserta el modal en el DOM la primera vez que se abre. */
function _inyectarModalAuth() {
if (document.getElementById("modal-auth")) return;
const el = document.createElement("div");
el.id = "modal-auth";
el.className = "modal-auth-overlay";
el.setAttribute("role", "dialog");
el.setAttribute("aria-modal", "true");
el.setAttribute("aria-label", "Iniciar sesión o registrarse");
el.innerHTML = `