Saltar al contenido principal

Usa el contrato revisado de inicio autenticado

El inicio autenticado es la transición del estado de sesión Driver restaurado localmente a la navegación principal de Driver App. Coordina carga, cuenta, horario, configuración, proveedor de pedidos, permisos, conectividad y estado de tiempo real; no es un único resultado de inicio de sesión o lectura del servidor.

Usa este contrato al mantener el inicio, orden de proveedores, pila autenticada o pestañas principales. Los efectos de inicialización y carga de proveedores dependen del proyecto, la cuenta, la plataforma, la conectividad y la disponibilidad del proveedor.

Disponibilidad​

La rama autenticada requiere una sesión iniciada restaurada localmente y un proyecto configurado de Driver App. Un requisito previo de horario configurado puede tener prioridad sobre el espacio de trabajo principal. El estado local de permisos puede retrasar la disponibilidad de Root y luego determina si se monta Map view o su alternativa de permisos.

Que una cuenta aparezca en un producto de operadores no demuestra que tenga una sesión local presente, válida, habilitada o autorizada para una solicitud de Driver App.

Requisitos previos​

  • Una compilación compatible de Driver App y configuración de proyecto.
  • Una cuenta de conductor obtenida mediante el flujo de cuenta compatible.
  • Estado de sesión guardado que el cliente pueda rehidratar.
  • Disponibilidad local completa de idioma y configuración que necesiten los proveedores dependientes.
  • Una estrategia explícita para los estados de fallo de horario, permisos, plataforma, conectividad y proveedores.
  • Autorización y gestión de errores separadas para cada solicitud de API que comience después de admitir la navegación.

Límites de responsabilidad​

LímiteResponsabilidad durante el inicioSeparación requerida
Proveedor de sesiónLeer token, usuario y estado del dispositivo guardados; exponer carga e inicio de sesión.Rehidratar localmente no es autenticación del servidor.
Proveedores de idioma/configuraciónResolver el idioma local y configuración actual del proyecto para proveedores posteriores.La configuración ausente o predeterminada no es una respuesta correcta del servicio.
Navegador RootMantener visible la carga hasta que se resuelvan sus entradas locales; elegir navegación sin sesión, de horario o autenticada.Admitir navegación no significa que los datos estén listos.
Compuerta de horarioComparar el horario de Driver disponible localmente con la regla de validación configurada en el cliente.El control del cliente no es un contrato completo de horario del servidor.
Pila autenticadaMontar las pestañas principales y las rutas de detalle registradas cuando termina la carga de sesión.Registrar una ruta no autoriza la acción de detalle.
Pestañas principalesIniciar en Orders y mostrar Map view, Messages y Profile si están montadas; sustituir Map view localmente cuando falte el permiso.Montar una pestaña no demuestra lectura, ubicación, mensaje ni efecto de perfil.
Proveedores de pedidos/tiempo realIniciar lecturas, configuración de transporte y suscripciones aptas según sesión, proyecto, conectividad y estado de pantalla.Disponibilidad, conexión, intención de unirse, recibo y vigencia son distintos.
APIDebe autorizar y validar independientemente cada lectura o mutación; los contratos de tareas afectadas siguen excluidos si no se demuestra ese límite.El cliente no debe tratar su sesión guardada como decisión de autorización.

El proveedor de tiempo real puede inicializar el transporte tras cargar la sesión según la configuración de proyecto, incluso antes de que la pantalla autenticada demuestre que es útil. La pila autenticada y otros proveedores añaden suscripciones bajo sus propias condiciones. Mantén separados la creación del transporte, pertenencia autenticada, datos de pantalla y finalización visible para el usuario.

Entradas y resultados​

Entrada/estadoTransición del clienteResultado observableLímite de fallo o efecto parcial
Carga de sesiónRestaurar valores de sesión guardados.La carga sigue visible hasta resolver el trabajo local de sesión.Un error de almacenamiento puede producir un estado incompleto; aún no existe veredicto del servidor.
No se admite sesiónElegir navegación sin sesión.Puede aparecer una superficie sin sesión; este contrato no garantiza la transición limpia de tutorial del primer inicio.No demuestra cierre de sesión del servidor ni revocación del token.
Sesión admitida y estado de inicio pendienteSeguir resolviendo la disponibilidad de notificaciones, proveedor de pedidos, horario y permisos.Puede seguir visible la carga.Los fallos individuales pueden resolverse de forma distinta; no hay un único éxito agregado.
La validación bloquea por horarioElegir el requisito de horario en lugar del contenedor autenticado.Aparece la superficie de bloqueo por horario.La hora/lógica del cliente no es el conjunto completo de reglas de API.
Se admite el contenedor autenticadoMontar la pila autenticada y luego las pestañas principales.Orders es la pestaña inicial; las otras dependen del estado local.Que una pestaña sea visible no demuestra que haya datos disponibles.
Pestaña Map sin el permiso local requeridoMontar el sustituto específico de permisos.Se muestran indicaciones de permisos en lugar del mapa.La solicitud no demuestra permiso efectivo ni éxito de ubicación.
Hay conectividad e identidad de sesiónLos proveedores aptos de tiempo real/lectura pueden conectarse, suscribirse o solicitar datos.Puede cambiar después el estado de carga, contenido, vacío o error.La conexión y la intención de solicitud no demuestran aceptación, entrega ni vigencia.
Navegación a ProfileEl área de cuenta puede actualizar los datos del usuario actual.Puede cambiar la carga/contenido/error de Profile.El resultado de actualización debe gestionarse aparte de navegar.

El comportamiento de Atrás corresponde a la pila activa. El inicio no debe usar Atrás para eludir requisitos previos de sesión, horario o permisos. Push y navegación programática deben seguir apuntando a una ruta registrada y superar sus propios controles de tarea.

Seguridad y privacidad​

  • Trata el estado guardado de cuenta y token como sensible y provisional.
  • Exige autorización y validación independientes del servidor en cada solicitud; nunca uses una ruta montada, identificador de usuario, conexión de transporte ni rol local como prueba de autorización. Mantén excluidos los contratos afectados de mensajes/lecturas y otras tareas hasta demostrar ese límite.
  • No registres tokens, registros de sesión, identidad Driver, identificadores de sala, pedidos, mensajes, contactos, coordenadas ni ID de proveedores.
  • Evita ejecutar el inicio autenticado contra servicios reales para documentar o hacer pruebas rápidas. El montaje normal puede iniciar lecturas, tiempo real, notificaciones y trabajo relacionado con ubicación.
  • Limpia o sustituye el estado asociado a una cuenta cuando cambie la propiedad; no permitas que lecturas/eventos tardíos de una sesión anterior actualicen la siguiente.

Límites y estados de fallo​

EstadoSignificadoGestión requerida
Sesión rehidratada localmenteLos valores guardados están disponibles para los proveedores.Mantén la autorización del servidor por solicitud.
Se quitó la carga de RootLa disponibilidad local admitió otra rama.No informes éxito de API ni proveedor.
Pestañas autenticadas visiblesNavegación montada para la sesión local.Permite que cada pestaña muestre carga, vacío, no disponible y error.
Existe transporte de tiempo realSe creó o conectó un objeto de transporte.No deduzcas pertenencia autenticada, entrega de eventos ni vigencia de datos.
Se solicitó una suscripciónEl proveedor pidió unirse al estado de tiempo real de la tarea.Registra por separado la desconexión, reconexión, limpieza y propiedad de sesión obsoleta.
Falla una lectura tras montar pestañasDivergieron la navegación y la disponibilidad de datos.Mantén el fallo en la tarea responsable y evita repetir mutaciones.
La sesión queda ausente o deshabilitadaLa cuenta local ya no admite trabajo autenticado.Vuelve al flujo compatible de sesión/autenticación; no fuerces navegación.
App pasa a segundo plano o vuelve a primer planoPuede ejecutarse actualización, permisos, ubicación o tiempo real según el ciclo de vida.Impide que resultados tardíos o de una sesión anterior se conviertan en estado actual.

El inicio no garantiza orden ni atomicidad entre almacenamiento local, configuración, lecturas de API, configuración de notificaciones, suscripciones en tiempo real, comprobaciones de horario ni ciclo de vida. Trata cada resultado por separado y muestra el estado obsoleto o parcial sin afirmar que se completó.

Diagnóstico​

SíntomaInspeccionarSiguiente paso seguro
No desaparece la cargaDisponibilidad de sesión, idioma, configuración, notificaciones, proveedor de pedidos, horario y permisos localesCaptura solo nombres de estado y tiempos saneados; no reinicies repetidamente contra servicios en vivo.
Aparece la entrada sin sesión para una cuenta previstaPropiedad de sesión local y resultado de almacenamientoUsa el contrato de autenticación; no inyectes manualmente navegación ni token.
Aparece inesperadamente el requisito de horarioValidación configurada, hora del dispositivo y horario disponibleCompara entradas públicas y escálalo al responsable de cuenta/configuración.
Aparecen pestañas, pero no contenidoDisponibilidad de navegación frente a lectura del proveedor responsableDiagnostica carga, vacío, no disponible o error sin emitir una mutación.
El estado de tiempo real parece obsoletoConectividad, transporte, ciclo de suscripción, propiedad de sesión y lectura de pantallaUsa el contrato de tiempo real y verifica la limpieza antes de reconectar.
Map view muestra indicaciones de permisosResultado local del permiso y estado de plataformaUsa el contrato de permisos; no deduzcas el permiso efectivo solo de las declaraciones.

Vuelve a revisar este contrato cuando cambien el almacenamiento/rehidratación de sesión, orden de proveedores, disponibilidad de Root, prioridad de horario, rutas autenticadas, pestaña inicial, sustitución de permisos, ciclo de tiempo real o limpieza del ámbito de cuenta.

Guías relacionadas: Arquitectura de Driver App · Descripción general de Driver App · Inicio y carga · Iniciar sesión como conductor