Files
fn_registry/functions/browser/cdp_save_storage_state.md
T
egutierrez 5b10b419a2 feat(browser): auto-commit con 44 cambios
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-06 12:49:54 +02:00

2.6 KiB

id, name, kind, lang, domain, purity, version, tested, description, tags, signature, uses_functions, uses_types, returns, returns_optional, error_type, imports, file_path, example, params, output
id name kind lang domain purity version tested description tags signature uses_functions uses_types returns returns_optional error_type imports file_path example params output
cdp_save_storage_state_go_browser cdp_save_storage_state function go browser impure 1.0.0 false Captura cookies y localStorage de la página activa y los serializa a un archivo JSON para restaurar la sesión sin repetir el login.
cdp
browser
storage
session
cookies
localStorage
auth
navegator
func CdpSaveStorageState(c *CDPConn, outPath string) error
cdp_evaluate_go_browser
false error_go_core
functions/browser/cdp_save_storage_state.go conn, _ := CdpConnect(9222) defer CdpClose(conn) CdpNavigate(conn, "https://app.example.com") err := CdpSaveStorageState(conn, "/tmp/session.json")
name desc
c Conexión CDP activa apuntando a la pestaña con la sesión autenticada.
name desc
outPath Ruta del archivo JSON de salida donde se escribirá el estado (cookies + localStorage).
nil si el archivo se escribió correctamente; error con contexto en caso de fallo de red, CDP o escritura.

Ejemplo

conn, err := CdpConnect(9222)
if err != nil {
    log.Fatal(err)
}
defer CdpClose(conn)

// Navegar y autenticarse manualmente o con scraping
CdpNavigate(conn, "https://app.example.com/dashboard")

// Guardar estado de la sesión
if err := CdpSaveStorageState(conn, "/tmp/session.json"); err != nil {
    log.Fatal(err)
}
// /tmp/session.json contiene cookies + localStorage listos para restaurar

Cuando usarla

Tras completar un login en el browser (manual o automatizado), antes de cerrar la sesión o como paso final del script de autenticación. En la próxima ejecución, llama a CdpLoadStorageState en vez de repetir el flujo de login.

Gotchas

  • localStorage es por-origen: solo captura el localStorage del origen actualmente cargado en la pestaña. Si necesitas preservar localStorage de múltiples dominios, guarda un estado por cada dominio navegado.
  • Cookies globales del perfil: Network.getAllCookies devuelve todas las cookies del perfil de Chrome, no solo las del origen activo. El JSON puede ser grande si el perfil tiene muchas cookies.
  • Páginas especiales (about:blank, chrome://, extensiones): CdpEvaluate sobre localStorage fallará; la función lo maneja devolviendo un mapa vacío de forma defensiva, así que no romperá — pero el localStorage quedará vacío en el JSON.
  • Permisos: el archivo se escribe con 0644; asegúrate de que el directorio de destino existe antes de llamar a la función.