Si entiendo esto correctamente, está creando una aplicación web que se encuentra frente a una API, y la API maneja todos los servicios de back-end. En particular, no tiene una base de datos de su lado y, de hecho, no debería.
Entonces solo hay tres lugares donde puede almacenar esa información: la sesión, la URL o en una cookie en el cliente. Abogo por la solución de cookies, pero veamos cada una.
- La sesión: Parece que la mayoría de los nuevos desarrolladores realmente no saben cómo funciona la sesión. Simplemente coloca cosas allí, y luego esas cosas aún están allí en solicitudes posteriores (cargas de página o llamadas AJAX). Pero no es magia. El marco generalmente asigna una cookie de sesión única a cada usuario. Y la cookie de sesión determina qué objeto de sesión se utiliza (uno para cada usuario activo, es decir, cada sesión). Esto normalmente se almacena en la memoria y, si se reinicia el servidor, la sesión desaparece. Si el servidor está equilibrado con otros servidores, la sesión desaparece. Sí, hay formas de evitar esto, pero todos se acercan al mantenimiento de una base de datos de sesión persistente. Y estamos evitando agregar una base de datos para esta información simple.
- La URL: si cada URL que genera para el usuario incluye su user_id, entonces ha garantizado que siempre estará disponible para el servidor. Pero es una molestia recordar siempre hacer esto (o crear una capa adicional para garantizar que esto suceda). Y expone públicamente un detalle de implementación innecesariamente. http://example.com/my_profile debería funcionar sin? user_id = 100001.
- Una cookie: esta es la solución más simple y estándar. Simplemente crea una cookie user_id. Las cookies son enviadas por el navegador con cada solicitud, al igual que la URL, pero el proceso es (en su mayoría) invisible para el usuario. Esta es tu mejor apuesta.
También existe la opción de almacenamiento local HTML5, pero eso no es realmente para este caso de uso.
- Cómo agregar a un menú desplegable de WordPress
- ¿Puedo usar JavaScript para crear una página web con dos idiomas para que los usuarios puedan cambiar a quien quieran haciendo clic en un botón (sin el traductor de Google)?
- ¿Cuál es el beneficio para el usuario de los navegadores que compiten en renderizado?
- ¿Qué debe saber un desarrollador web, 1 Java o 2.net?
- ¿Cuál es el marco mejor o más fácil para PHP?
Y si le preocupa exponer las ID de las bases de datos, no lo haga. Todos los demás lo hacen, y es una práctica estándar.