Autenticación
PolariScore no tiene usuarios ni contraseñas propios: se apoya en Firebase Auth con Google Sign-In y en el directorio de usuarios compartido de PlanItOne.
El flujo
Inicio de sesión con 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 se busca su ficha en usuarios/{correoSaneado} y se leen nombre y
roles_map.
Se habilita lo que corresponde
Con los roles cargados se activan la carga de evidencias, la evaluación de acciones o las vistas de administración, según el caso.
Acceso transparente en la v1
La v1 tiene su propia pantalla de acceso con un comportamiento pensado para no pedir nada cuando no hace falta:
- Al entrar sin sesión, intenta autenticarte en silencio con la cuenta de Google ya activa en el navegador. Si funciona, entras sin ver ningún formulario.
- Si Google no tiene sesión activa, cae al botón manual. Una marca en el almacenamiento de la pestaña evita que el intento silencioso se repita en bucle.
- El parámetro
?next=guarda a dónde ibas y te devuelve allí. Se valida que apunte al mismo origen, para que no pueda usarse como redirección hacia un sitio externo.
Sanear el correo
Es la operación que aparece en varios 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 identifica al autor en el historial de
evaluaciones (id_usuario) y en las claves de la configuración de correos.
usuarios/ queda sin roles. Puede
iniciar sesión —la autenticación es correcta— pero la aplicación lo trata como consulta. Crear el usuario en Firebase
Auth no basta: hay que crear también su ficha con el correo saneado.Dominios autorizados
Firebase Auth solo acepta iniciar sesión desde dominios declarados en la consola del proyecto. Como PolariScore
vive en dos: planitone.co (versión estable, bajo la subruta) y polariscore.planitone.co
(v1), ambos deben estar autorizados.
Sesión compartida de la suite
Además de la sesión de Firebase en el navegador, PlanItOne mantiene una cookie de sesión en el dominio
planitone.co, emitida por el servicio de administración, que permite que el encabezado común —avatar,
campana, cuadrícula de aplicaciones— funcione en todas las apps.
- 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 en PolariScore no la expira por sí solo: hay que cerrarla desde PlanItOne.
Sin sesión
| Estable | v1 | |
|---|---|---|
| Navegar políticas y fichas | Sí | Redirige a la pantalla de acceso |
| Ver gráficas de cumplimiento | Sí | Tras iniciar sesión |
| Cargar evidencias | No | No |
| Evaluar acciones | No | No |
Que la estable permita consultar sin sesión es coherente con el carácter público de las políticas institucionales; lo que se restringe es la escritura. Ver Permisos.
Relacionado: Roles · Las dos versiones · Infraestructura.