Tengo un proyecto que combina un backend .NET con un frontend React/Typescript.
En algún momento, el backend (C#) ejecuta las siguientes instrucciones:
var name = AwesomeClass.GetName();
var surname = AwesomeClass.GetSurname();
var StorageScript = $"localStorage.setItem('name_token', '{name}'); localStorage.setItem('surname_token', '{surname}');";
ScriptManager.RegisterStartupScript(this, this.GetType(), "TokenLocalStorage", StorageScript, true);
A menos que esté haciendo algo mal (lo cual es una clara posibilidad), esa llamada a RegisterStartupScript ejecuta el script Javascript provisto, que almacenará en localStorage esos "tokens". Las variables de nombre y apellido NO son nulas (probadas varias veces).
En la interfaz, hay llamadas a localStorage.getItem de la siguiente manera:
const nameToken = localStorage.getItem('name_token');
El caso es que, si ejecuto el proyecto localmente (a través de Visual Studio 2022, por ejemplo), todo funciona:
Sin embargo, cuando el proyecto se implementa en una instancia de AWS (para que se pueda acceder a través de una URL "real", con su formulario de inicio de sesión, etc.), las llamadas a localStorage.getItem SIEMPRE devuelven nulo . No importa qué valor esté almacenado. No importa dónde el backend realice esa llamada de RegisterStartupScript. No importa dónde la interfaz intente recuperar los valores. Siempre NULO.
El caso es que, a través del Code Inspector, los tokens están presentes en el localStorage. Entonces, la parte de back-end está funcionando (todavía almacena los valores usando la cosa setItem). Más aún: si localStorage.getItem se ejecuta en la pestaña "Consola", el valor devuelto es correcto.
Parece que solo el código React/Typescript no puede recuperar el valor.
¿Alguna idea de cuál podría ser la causa raíz?
Entiendo que el problema puede estar ubicado en el proceso de "implementación" (¿configuración de AWS? ¿configuración de canalización?), pero quiero estar seguro de que no hay nada (obvio) incorrecto con el código.
Además, si hay otra manera fácil de enviar datos de backend a frontend, soy todo oídos.
PD: Bastante nuevo en el mundo del desarrollo web, por lo que podría estar ignorando cosas críticas.