Iniciar sesión con acceso interno
Autentica a un empleado o dispositivo ya provisionado desde `auth/login` con `Código de acceso`, `Usuario` y `Contraseña`. En el runtime documental ES, el código de Marea Gran Via es `marea-gran-via-2202b11a`; una captura de éxito requiere además una credencial interna activa que no viene preparada en el runtime actual.
En este artículo
Usa esta guía cuando un operador necesite entrar en Antylogic desde un dispositivo sin sesión usando una credencial interna ya provisionada, sin pasar por cuenta de email ni OAuth externo.
El acceso interno emite sesión y recarga usuario/permisos, pero no crea usuarios, roles, membresías ni permisos. La preparación de esas credenciales pertenece a otros flujos de acceso.
Antes de empezar
- La app está sin sesión y puede abrir `auth/login`.
- Existe un namespace activo para la organización o ubicación; en el runtime ES actual, `LOCATION_NAMESPACE=marea-gran-via-2202b11a`.
- Existe una credencial interna activa para ese namespace, con usuario y contraseña válidos.
- El usuario asociado a la credencial está activo.
- Existe el cliente OAuth resuelto por el flujo, normalmente `antylogic-web`.
- No se deben mostrar, registrar ni capturar contraseñas reales.
Instrucciones
- 1.
Abrir la pantalla de acceso
Abre la app sin sesión en `auth/login`. La pantalla pública permite elegir el modo de acceso antes de entrar en el área autenticada.
- 2.
Elegir Acceso interno
Selecciona `Acceso interno`. La pantalla muestra `Código de acceso`, `Usuario`, `Contraseña` y `Recordarme`. Para Marea Gran Via, usa el código documental `marea-gran-via-2202b11a` cuando prepares capturas o pruebas controladas.
- 3.
Introducir la credencial
Escribe el código de acceso, el usuario interno y la contraseña. Antylogic recorta el código y el usuario, los normaliza a minúsculas y mantiene la contraseña como campo secreto.
- 4.
Decidir si recordar la sesión
Activa `Recordarme` solo en dispositivos autorizados. Esta opción cambia la duración del refresh token de 24 horas a 30 días, pero no modifica roles ni permisos.
- 5.
Enviar el inicio de sesión
Pulsa `Iniciar sesión`. La app llama a `POST /api/auth/login/internal` con `namespace`, `login_id`, `password` y `remember`, y conserva `state` y `return_to` si venían en la ruta.
- 6.
Entrar en la app o resolver errores
Si la credencial es válida, Antylogic guarda tokens, recuerda el namespace, invalida `me` y `myPermissions`, y navega al destino `next`/`return_to` o al área autenticada. Si falla, el operador permanece en login o ve `ApiConnectionError` si hay un problema de conexión o servidor.
Validaciones y límites
- `Código de acceso`, `Usuario` y `Contraseña` son obligatorios en modo `Acceso interno`.
- La regla cliente de mínimo 6 caracteres del modo `Cuenta` no aplica al acceso interno.
- El endpoint documentado para esta acción es `POST /api/auth/login/internal`, no `POST /api/app/auth/callback/native`.
- Si se envía `state`, debe coincidir con la cookie temporal `oauth_state_native`.
- El namespace debe existir y estar activo; la credencial interna debe estar activa y pertenecer a ese namespace.
- La contraseña se valida contra `internal_credentials.secret_hash` y el usuario asociado debe tener `is_active=true`.
- Credencial inexistente, inactiva, usuario no encontrado o contraseña incorrecta se tratan como credenciales inválidas con respuesta 401.
- No documentar bloqueo por intentos fallidos ni rate limit específico; no hay evidencia implementada en esta ruta.
Resultado esperado
La sesión queda emitida con `access_token` y `refresh_token`, las cookies compatibles quedan escritas, el cliente nativo guarda tokens localmente, recuerda el namespace e invalida `me` y `myPermissions` para recargar el acceso funcional posterior.