Autenticación de usuarios en el chat web
Con la seguridad del chat web activada, puede autenticar de forma segura a los clientes por ID de usuario.
El comportamiento predeterminado de la integración del chat web es identificar a los usuarios únicos estableciendo el valor de la propiedad ' user_id ' que se envía como parte de cada mensaje al asistente de IA. Para obtener más información, consulte Gestión de la información de identidad del usuario en el chat web.
Este enfoque es suficiente para el seguimiento de usuarios únicos con fines de facturación, pero no es seguro y no debe utilizarse para el control de acceso. Si activa la seguridad del chat web, utilice tokens web JSON (JWT) para autenticar de forma segura a sus usuarios y controlar el acceso a las funciones de su asistente de IA que requieren autorización.
Autenticación con la declaración " sub
Para utilizar este método de autenticación de usuarios, primero debe activar la función de seguridad del chat web. Para obtener más información, consulte Activación de la seguridad del chat web.
Al crear un JWT para el chat web, debe especificar un valor para la declaración " sub (asunto), que identifica al usuario. Para los usuarios anónimos, puede utilizar un identificador único generado.
Cuando genere un ID de usuario para un usuario anónimo, asegúrese de guardar el ID generado en una cookie para evitar que se le facture varias veces por el mismo cliente.
Cuando la integración del chat web recibe un mensaje firmado con este JWT, almacena el ID de usuario de la declaración " sub " como " system_integrations.channel.private.user.id " en las acciones.
Si sus clientes deben iniciar sesión antes de iniciar una sesión de chat web, puede utilizar el ID de usuario autenticado como valor de la declaración " sub " al crear el JWT. Dado que la integración del chat web valida el JWT y utiliza la afirmación " sub " para establecer el ID de usuario, su asistente de IA ahora puede confiar en " system_integrations.channel.private.user.id en las acciones para el control de acceso seguro a las funciones que requieren autorización.
Después de especificar el JWT para el chat web, no se puede cambiar a un JWT con un claim ' sub ' diferente durante la sesión. Si necesita añadir información de inicio de sesión autenticada en medio de una sesión, puede almacenarla como parte de la carga útil del usuario. Para ver un ejemplo de cómo hacerlo, consulte Tutorial: Autenticar un usuario en medio de una sesión.
Facturación y privacidad
En los planes basados en el usuario, el ID de usuario se utiliza a efectos de facturación. (No puede utilizar el método de instancia ' updateUserID() ' para establecer el ID de usuario si la seguridad del chat web está activada) El mismo ID de usuario se utiliza también como ID de cliente, que puede utilizarse para realizar solicitudes de eliminación de datos de usuario. Dado que el ID de cliente se envía en un campo de cabecera, el ID que especifique debe cumplir los requisitos para campos de cabecera definidos en RFC 7230.
Si está obligado a cumplir los requisitos del GDPR, puede que necesite almacenar de forma persistente cualquier ID de usuario anónimo generado, especialmente para usuarios anónimos que posteriormente inicien sesión con credenciales de usuario. El almacenamiento de estos identificadores de usuario le permite eliminar posteriormente todos los datos asociados a un cliente individual si así se le solicita.
Para obtener más información sobre la eliminación de datos de usuario, consulte Etiquetado y eliminación de datos.
Cierre de sesión
Para cerrar la sesión de un cliente, es necesario destruir la conversación web.
Si recarga la página cuando un cliente cierra la sesión, llame al método de instancia ' destroySession() ' para eliminar cualquier referencia a la sesión actual de las cookies y del almacenamiento del navegador. Si no se llama a este método, la información protegida por el JWT no corre peligro, pero el chat web intentará conectarse a la sesión anterior y fallará.
Si no realiza una recarga completa de la página cuando un cliente cierra la sesión, llame al método de instancia ' destroy() '. El método ' destroy ' elimina del DOM y de la memoria del navegador la instancia actual del chat web configurado para el userID actual. A continuación, llama al método de instancia ' destroySession() '.