Autenticación
S-PLAN no tiene usuarios ni contraseñas propios: se apoya en Firebase Auth con Google Sign-In y en la sesión compartida de PlanItOne. Quien entra a una aplicación de la suite entra a todas.
El flujo
Inicio de sesión con Google
La pantalla de acceso de PlanItOne abre una ventana de Google. No hay registro manual ni formulario de contraseña: la identidad la certifica la cuenta institucional.
Firebase Auth emite la sesión
El proyecto sigunitropico valida la credencial y devuelve el usuario autenticado al navegador.
Se resuelve el perfil
Con el correo del usuario, la aplicación busca su ficha en usuarios/{correoSaneado} —el correo con
los puntos convertidos en guiones bajos— y lee de ahí nombre y roles_map.
Se aplica la visibilidad por rol
Con los roles cargados se revelan los controles que corresponden y se emite el evento interno
roles:ready para que el resto de la página reaccione.
Sanear el correo
Es la operación que aparece en media docena de sitios y conviene tenerla clara:
correoSaneado = correo.replace(/\./g, "_")
"sneyderu1@gmail.com" → "sneyderu1@gmail_com"
"planeacion@unitropico.edu.co" → "planeacion@unitropico_edu_co"
Se conserva la arroba; solo cambian los puntos. La misma transformación se usa como clave en
notificaciones/s-plan/personal/{correoSaneado}.
usuarios/ queda sin roles. Puede
iniciar sesión —la autenticación es correcta— pero la aplicación lo trata como consulta pública. Crear el usuario en
Firebase Auth no basta: hay que crear también su ficha con el correo saneado.Sesión compartida de la suite
Además de la sesión de Firebase en el navegador, PlanItOne mantiene una cookie de sesión
pio_sid en el dominio .planitone.co, emitida por el servicio de administración. Es la que
permite que el encabezado común —avatar, campana de notificaciones, cuadrícula de aplicaciones— funcione en todas las
apps y también en este portal de documentación.
- Es
HttpOnlyySecure: el JavaScript de la página no puede leerla. - Se verifica en el servidor contra Firebase Auth, con validación de revocación.
- Cerrar sesión la expira y devuelve al inicio.
Sin sesión
S-PLAN no bloquea el acceso a las páginas de consulta. Sin sesión iniciada:
| Funciona | No funciona |
|---|---|
| Navegar el dashboard, ejes, programas, proyectos y metas. | Cargar evidencias. |
| Ver el detalle de acciones y sus evidencias. | Reportar avance o editar cronograma. |
| Ver las alertas globales (su lectura es anónima). | Recibir o consultar notificaciones. |
| Generar informes de lectura. | Cualquier control de administración. |
Cierre de sesión
El botón de cerrar sesión abre una confirmación y luego llama a signOut de Firebase, devolviendo a la
pantalla de acceso. Si además quieres soltar la sesión compartida de la suite, hay que cerrarla desde PlanItOne:
cerrar sesión en S-PLAN no expira por sí solo la cookie pio_sid.
Relacionado: Roles · Permisos · Infraestructura.