¿Borrar la cookie de sesión en tu navegador te cierra la sesión en el servidor?
Respuesta breve
No. Borrar la cookie solo quita la credencial de tu navegador — el registro de sesión (o un JWT aún válido) en el servidor suele seguir siendo utilizable hasta que expire o se invalide de forma explícita. Un atacante que ya capturó el token puede seguir usándolo. El error trata la cookie como la sesión misma; es solo un puntero al estado del servidor. El cierre real debe invalidar la sesión en el servidor, o revocar y dar un TTL corto al token.
Esta pregunta separa a los ingenieros que entienden dónde vive el estado de sesión de quienes creen que la cookie es la sesión. Equivocarse lleva a cierres de sesión rotos que dejan credenciales válidas activas.
Por qué la respuesta popular es incorrecta
Una cookie de sesión es solo una credencial portadora — normalmente un ID de sesión opaco o un token firmado — que tu navegador presenta en cada petición. Borrarla de tu navegador significa que tú dejas de enviarla. No envía ningún mensaje al servidor; el servidor ni siquiera sabe que la borraste. Para una sesión clásica del servidor, el registro correspondiente en el almacén de sesiones (memoria, Redis, base de datos) sigue ahí y sigue válido. Para un JWT es peor: el token es autónomo y criptográficamente válido hasta su expiración, sin ninguna consulta al servidor por defecto. Así que si una copia de esa cookie o token se filtró — capturada en una red comprometida, robada del almacenamiento local por XSS, o sacada de un registro de proxy — el atacante puede reproducirla mucho después de que «cerraras sesión».
El modelo mental correcto
La cookie es un puntero; la autoridad vive en el servidor. Por eso el cierre de sesión debe actuar en el servidor:
- Sesiones con estado: borra el registro o márcalo como inválido en el almacén, para que la siguiente petición con ese ID se rechace. Luego limpia también la cookie del cliente por orden.
- JWT sin estado: no puedes borrar de verdad un token firmado, así que usa TTL cortos con un modelo de token de refresco, y mantén una lista de revocación (o rota las claves de firma) para matar tokens antes.
Por qué importa en la práctica
Por eso existen las funciones de «cerrar sesión en todos los dispositivos» y de revocación — invalidan el estado del servidor para que una credencial robada muera. Cerrar el navegador tampoco ayuda; los servidores no expiran sesiones al caer un socket, y las cookies persistentes sobreviven a un reinicio. La respuesta lista para entrevista: borrar la cookie es un gesto del cliente; solo la invalidación en el servidor termina de verdad una sesión.
Posibles preguntas de seguimiento
- ¿En qué difiere el cierre de sesión entre un ID de sesión opaco y un JWT sin estado?
- ¿Por qué la revocación en el servidor es difícil para los JWT, y qué patrones la abordan?
- ¿Qué hace realmente una función de «cerrar sesión en todos los dispositivos» en el backend?