US English (US)
ES Spanish

Submit Article Requests

Do you have a suggestion for an article you would like to see created?
Feel free to submit this form and add your suggestions to our document board.

Please fill out the contact form below and we will reply as soon as possible.

  • Appcues Certifications & Training
  • Integration Hub
  • Contact Us
Spanish
US English (US)
ES Spanish
  • Docs home
  • Instalación y desarrolladores
  • Descripción general de la instalación

Verificación de identidad

Aprenda a utilizar la verificación de identidad para garantizar que solo los usuarios que usted verifique puedan acceder a sus experiencias Appcues .

Updated at August 1st, 2025

Submit Article Requests

Do you have a suggestion for an article you would like to see created?
Feel free to submit this form and add your suggestions to our document board.

Please fill out the contact form with the details about the help content you'd like to see.

  • Home

  • Instalación y desarrolladores

    • Experiencias web

      • Experiencias móviles

        • Flujos de trabajo

          • Análisis y datos

            • Gestión de cuentas

              • Mejores prácticas

                • Integraciones

                  Introducción

                  La verificación de identidad le permite firmar digitalmente el ID de usuario enviado a Appcues al identificar a los usuarios, garantizando así que solo los usuarios que usted verifica puedan acceder a sus experiencias Appcues . Implementar la verificación de identidad garantiza que terceros no puedan hacerse pasar por otros usuarios y acceder a experiencias Appcues no destinadas a ellos.

                  La implementación de la verificación de identidad requiere que uno de sus desarrolladores realice tres pasos:

                  1. Agregue código al backend de su producto para generar una firma para cualquier ID de usuario y proporcionar esa firma al SDK de JavaScript Appcues y/o a los SDK móviles.
                  2. Pruebe y verifique que se proporcionen firmas válidas al realizar llamadas al SDK Appcues , en todos sus sitios web o aplicaciones móviles que usan Appcues .
                  3. Una vez verificado, puede aplicar la verificación de identidad habilitando el Modo de cumplimiento para rechazar cualquier llamada de Appcues SDK que no contenga firmas válidas.

                  ¡Eso es todo!

                  Para configurar la verificación de identidad (desarrolladores)

                  Como desarrollador de software de su producto, necesitará:

                  1. Genere una firma de ID de usuario en su servidor backend. El SDK Appcues usará esta firma para verificar que los usuarios solo puedan ver el contenido destinado a su ID de usuario.
                  2. Entregue esa firma de ID de usuario a su sitio web o aplicación móvil.
                  3. Proporcione la firma de UserID antes de realizar cualquier llamada al SDK Appcues siguiendo las instrucciones a continuación.

                  Generando la firma UserID

                  Agregue el código apropiado al servidor back-end de su producto utilizando uno de los ejemplos de código back-end en la parte inferior de esta página como guía.

                  Una vez generada la firma, debe proporcionarla de forma segura al SDK Appcues en su aplicación web o móvil, o al usar la API HTTP Appcues o el Launchpad Appcues , como se describe a continuación. Si su producto utiliza renderizado de páginas del lado del servidor, debe incrustar la firma en la página que se entrega al navegador. De lo contrario, realice una llamada API autenticada a su servidor backend para recuperar la firma.

                  De forma predeterminada, las firmas son válidas durante 15 minutos después de su generación. Si tiene una aplicación web o móvil de una sola página de larga duración, esto podría provocar que las llamadas al SDK fallen después de 15 minutos. Si su aplicación debe realizar llamadas al SDK Appcues más de 15 minutos después de obtener una firma válida, puede:

                  • Cambie el tiempo a más de 15 minutos en el ejemplo de código apropiado que se proporciona a continuación
                  • Solicitar una firma actualizada de su servidor backend

                  Establezca la firma antes de realizar llamadas al SDK Appcues

                  Es importante proporcionar la firma antes de realizar cualquier llamada al SDK Appcues . Si el Modo de Forzado está habilitado mientras se realizan llamadas a Appcues .track() , Appcues .page() o cualquier otro método del SDK Appcues antes de proporcionar una firma, no se enviarán datos a los servidores de Appcues y no se mostrarán las experiencias. Una vez establecida una firma válida, se enviarán datos a los servidores de Appcues para validar y mostrar las experiencias Appcues . Si la firma nunca se establece y el Modo de Forzado está activado, el usuario no verá las experiencias Appcues en ninguna aplicación móvil o web que utilice el SDK Appcues para esa cuenta.

                  Nota: Se producirá un comportamiento diferente cuando el Modo de cumplimiento esté desactivado (predeterminado), como se describe en la sección Prueba de verificación de identidad a continuación.

                  Nota: Si se utiliza Segment.io , la firma también debe especificarse antes de llamar a Segment.

                  Proporcionar la firma al SDK de Javascript Appcues

                  El proceso es el mismo si Appcues se instala directamente o a través de Segment, Rudderstack o cualquier otra herramienta de terceros.

                  Asignar la firma de ID de usuario a window. Appcues Settings.userIdSignature de la siguiente manera.

                  
                  // retain any Appcues SDK settings that may have been set prior
                  if (window.AppcuesSettings) {
                    window.AppcuesSettings.userIdSignature = signature;
                  } else {
                    window.AppcuesSettings = { userIdSignature: signature };
                  }
                  // Your Appcues.identify() call, or equivalent call for Segment, Rudderstack, etc. goes below

                  Proporcionar la firma al SDK móvil Appcues

                  Pase una propiedad de usuario llamada appcues:user_id_signature en la llamada identify(userId, props) . Tenga en cuenta que esto requiere la versión >= 1.4.0 del SDK móvil Appcues .

                  # Android / Kotlin
                  appcues.identify(userId, mapOf("appcues:user_id_signature" to signature))
                  # iOS / Swift
                  appcues.identify(userID: userID, properties: ["appcues:user_id_signature": signature])

                  Esta firma se usará en un encabezado de autorización en las solicitudes de red del SDK. La API Appcues usará esta firma para verificar que las solicitudes del cliente estén autorizadas mediante una clave del SDK configurada en Appcues Studio.


                  Proporcionar la firma al Launchpad Appcues

                  Si utiliza la instalación personalizada Appcues Launchpad, debe proporcionar la firma como se describe en la sección "Encabezados de solicitud" de la documentación de la instalación personalizada Appcues Launchpad . Nota: Si utiliza la instalación estándar (no personalizada) de Launchpad, no necesita proporcionar la firma.

                  Prueba de verificación de identidad

                  Mientras el modo de cumplimiento esté deshabilitado (predeterminado), se producirá el siguiente comportamiento:

                  Consulte la siguiente sección “Aplicación de la verificación de identidad” para saber qué sucede cuando el modo de aplicación está habilitado.

                  • Si no se proporciona ninguna firma al SDK O se proporciona una firma válida al SDK:
                    • Las llamadas al SDK funcionarán y las experiencias se mostrarán a los usuarios según la configuración de segmentación de sus flujos Appcues y otras experiencias.
                  • Si se proporciona una firma no válida al SDK:
                    • Las llamadas al SDK fallarán y las experiencias no se mostrarán a los usuarios. Asegúrese de que la firma proporcionada al SDK sea válida según las instrucciones de "Generar la firma de UserID".

                  Para probar localmente aplicaciones web si falta la firma mientras el modo de cumplimiento está deshabilitado:

                  Si el Modo de Aplicación está deshabilitado (predeterminado) y no proporciona una firma, el usuario seguirá viendo las experiencias Appcues . Para probar este escenario localmente con aplicaciones web, agregue la siguiente línea de código antes de su primera llamada al SDK de JavaScript Appcues .

                  // Allow testing Identity Verification locally with console messages
                  window.APPCUES_TEST_IDENTITY_VERIFICATION = true;
                  

                  Cuando window.APPCUES_TEST_IDENTITY_VERIFICATION = true verá uno de los siguientes mensajes en la consola de JavaScript, después de cada llamada al SDK Appcues .

                  • Appcues Identity Verification Testing: Successfully sent update to API using User ID Signature
                    • Este mensaje de consola significa que se proporcionó una firma válida antes de una llamada al SDK
                  • Appcues Identity Verification Testing: Failed to send update to API - verification failure: No User ID Signature present
                    • Este mensaje de consola significa que no se proporcionó una firma antes de realizar una llamada al SDK Appcues y no se mostró una experiencia.
                  • Appcues Identity Verification Testing: Failed to send update to API - verification failure: Invalid User ID Signature NNNN
                    • Este mensaje de consola indica que se proporcionó una firma no válida. Verifique que la firma sea válida según las instrucciones de "Generar la firma de ID de usuario".

                  Importante : después de realizar la prueba, asegúrese de eliminar la declaración window.APPCUES_TEST_IDENTITY_VERIFICATION = true antes de implementar su aplicación en producción para no mostrar estos mensajes de registro en la consola JavaScript de su usuario.

                  Aplicación de la verificación de identidad

                  Una vez que se completen las pruebas en todas las aplicaciones web y móviles que usan el SDK Appcues con su cuenta Appcues , puede habilitar el Modo de cumplimiento para mostrar las experiencias Appcues solo a los usuarios con una firma válida.

                  Importante: Activar el Modo de Obligación en tu cuenta afecta a todas tus aplicaciones móviles o web. No lo actives hasta que hayas probado tanto tus aplicaciones móviles como web y te hayas asegurado de que todos tus usuarios finales estén usando una versión que realice correctamente la verificación de identidad, como se describió anteriormente. En el caso de las aplicaciones móviles, después de publicar una versión de tu aplicación en la tienda con verificación de identidad, deberás adaptar los flujos de Appcues a versiones de la aplicación iguales o superiores a esta nueva versión, o exigir a tus usuarios que actualicen sus aplicaciones a la última versión para que puedan seguir usándolas. Debes planificar activar el Modo de Obligación en tu cuenta solo después de que los usuarios de tus aplicaciones hayan tenido la oportunidad de actualizar a esta versión obligatoria.

                  Una vez habilitado el Modo de Aplicación, se producirá el siguiente comportamiento en todas las aplicaciones móviles y web que utilicen el SDK Appcues en su cuenta. Consulte la sección anterior para saber qué ocurre cuando se deshabilita el Modo de Aplicación:

                  • Si se proporciona una firma válida al SDK:
                    • Las llamadas al SDK funcionarán y las experiencias se mostrarán a los usuarios según la configuración de segmentación de sus flujos Appcues y otras experiencias.
                  • Si no se proporciona ninguna firma al SDK O se proporciona una firma no válida al SDK:
                    • Las llamadas al SDK fallarán y las experiencias no se mostrarán a los usuarios. Asegúrese de que la firma proporcionada al SDK sea válida según las instrucciones de "Generar la firma de UserID".

                  Para habilitar el modo de cumplimiento:

                  1. Obtén una clave API y un secreto API para tu cuenta Appcues . Si eres administrador Appcues , puedes generar una clave API y crear un secreto desde la página de configuración de claves API . Para más información sobre cómo usar nuestra API para controlar la verificación de identidad, consulta la página de claves de autenticación del SDK de la API pública .
                  2. Habilite el modo de cumplimiento con el siguiente comando curl . Reemplace ACCOUNT_ID con el ID de su cuenta y API_KEY y API_SECRET con los valores del paso 1.
                  curl <https://api.appcues.com/v2/accounts/ACCOUNT_ID/enforcement_mode/enable> \\
                    -u API_KEY:API_SECRET \\
                    -d ''
                  1. Realice una comprobación final de todas sus aplicaciones web y móviles que usan el SDK Appcues con su cuenta para verificar que las experiencias Appcues se muestren correctamente, según la configuración de segmentación de su experiencia. Las experiencias Appcues deberían mostrar si se siguieron los pasos de la sección "Probar la verificación de identidad". ¡Listo!

                  Si sus experiencias Appcues no aparecen como esperaba, no se preocupe, simplemente desactive el modo de cumplimiento.

                  Para desactivar el modo de cumplimiento:

                  Cambie enable a disable en el comando, como se muestra a continuación. Reemplace ACCOUNT_ID con el ID de su cuenta y API_KEY y API_SECRET con los valores que usó al habilitarlo, como se describió anteriormente.

                  curl <https://api.appcues.com/v2/accounts/ACCOUNT_ID/enforcement_mode/disable> \\
                    -u API_KEY:API_SECRET \\
                    -d ''

                  Importante: La clave API y el secreto de API generados en el panel de control de su cuenta son independientes de la clave de autenticación del SDK utilizada para generar la firma del ID de usuario. El par clave/secreto se utiliza para interactuar con nuestra API pública, lo que le permite habilitar o deshabilitar el modo de cumplimiento. La API pública también proporciona puntos finales para generar una clave de autenticación del SDK independiente, específica para la verificación de identidad. Esta clave del SDK se utiliza en el siguiente código para generar las firmas de ID de usuario de sus usuarios.

                  Ejemplos de código para generar una firma de ID de usuario

                  Cada muestra de código requiere la siguiente información para generar una firma válida por 15 minutos.

                  • Su ID de cuenta : se puede encontrar en Appcues Studio en la pestaña Configuración > Cuenta
                  • El ID de usuario del usuario actual : el mismo ID de usuario proporcionado a la llamada de identidad Appcues
                  • Un secreto de las claves de autenticación del SDK de la API pública de Appcues . IMPORTANTE: Es fundamental mantener la confidencialidad del secreto y no en el código JavaScript del cliente. Revelar el secreto permitiría a un hacker suplantar la identidad de otro usuario y acceder a sus experiencias Appcues . Tenga en cuenta que la clave de autenticación del SDK es independiente de la clave de API y del secreto generados a través del panel de control de su cuenta de Appcues .

                  Si el backend de su producto utiliza un idioma diferente a los que se enumeran a continuación, comuníquese con el soporte Appcues para obtener ayuda.

                  DO#

                  Usando la biblioteca Jose-jwt

                  using System;
                  using System.Collections.Generic;
                  using Jose;
                  using System.Text;
                  
                  static class AppcuesSignature
                  {
                      public static string CreateToken(string userId, string accountId, byte[] secretKey)
                      {
                          var payload = new Dictionary<string, object> {
                              { "iss", accountId },
                              { "sub", userId },
                              { "exp", DateTimeOffset.UtcNow.AddMinutes(15).ToUnixTimeSeconds() }
                          };
                          return Jose.JWT.Encode(payload, secretKey, Jose.JwsAlgorithm.HS256);
                      }
                  }
                  

                  Elixir

                  Usando la biblioteca Joken

                  @spec create_token(binary(), binary(), binary()) :: nil | binary()
                  def create_token(account_id, user_id, sdk_secret)
                  	expiry = (Timex.now() |> Timex.to_unix()) + (1 * 60 * 60)
                  	claims = %{
                  	  "iss" => account_id,
                  	  "sub" => user_id,
                  	  "exp" => expiry # The timestamp when this JWT should expire
                  	}
                  	signer = Joken.Signer.create("HS256", sdk_secret)
                  	case Joken.encode_and_sign(claims, signer) do
                  		{:ok, token, _} -> token
                  		{:error, _} -> nil
                  	end
                  end
                  

                  Ir

                  Usando la biblioteca github.com/dgrijalva/jwt-go

                  import (
                  	"github.com/dgrijalva/jwt-go"
                  	"time"
                  )
                  
                  func CreateToken(accountID string, userID string, secretKey []byte) (string, error) {
                  	// Create the Claims
                  	claims := jwt.StandardClaims{
                  		Issuer: accountID,
                  		Subject: userID,
                  		ExpiresAt: time.Now().Add(time.Minute * 15).Unix(),
                  	}
                  
                  	// Create the token
                  	token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
                  
                  	// Sign and get the complete encoded token as a string
                  	return token.SignedString(secretKey)
                  }
                  

                  Javascript

                  Usando la biblioteca Jose

                  const jose = require("jose");
                  
                  function createToken(account_id, user_id, secretKey) {
                    const secret = new TextEncoder().encode(secretKey);
                    const signature = new jose.SignJWT({})
                      .setProtectedHeader({ alg: 'HS256' })
                      .setIssuer(account_id)
                      .setSubject(user_id)
                      .setExpirationTime('1h')
                      .sign(secret);
                    return signature; // returns a promise
                  }
                  

                  Java

                  Uso de la biblioteca auth0-jwt

                  import com.auth0.jwt.algorithms.Algorithm;
                  import com.auth0.jwt.JWT;
                  import java.util.Date;
                  
                  class AppcuesSignature {
                    public static String CreateToken(String accountId, String userId, byte[] secret) {
                      Algorithm algorithm = Algorithm.HMAC256(secret);
                      String token = JWT.create()
                          .withIssuer(accountId)
                          .withSubject(userId)
                          .withExpiresAt(new Date(System.currentTimeMillis() + 15 * 60 * 1000))
                          .sign(algorithm);
                      return token;
                    }
                  }
                  

                  PHP

                  Usando la biblioteca php-jwt

                  use \\Firebase\\JWT\\JWT;
                  
                  function create_token($user_id, $account_id, $secret_key) {
                      $payload = array(
                          "iss" => $account_id,
                          "sub" => $user_id,
                          "exp" => time() + 15 * 60
                      );
                  
                      $jwt = JWT::encode($payload, $secret_key, 'HS256');
                      return $jwt;
                  }
                  

                  Pitón

                  Usando la biblioteca PyJWT

                  import jwt
                  import datetime
                  
                  def create_token(account_id, user_id, secret_key):
                  
                  	# Create the Claims
                  	claims = {
                  		'iss': account_id,
                  		'sub': user_id,
                  		'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=15)
                  	}
                  
                  	# Create the token
                  	token = jwt.encode(claims, secret_key, algorithm='HS256')
                  
                  	# Sign and get the complete encoded token as a string
                  	return token
                  

                  Rubí

                  Uso de la biblioteca ruby-jwt

                  require 'jwt'
                  
                  def create_token(user_id, account_id, secret_key)
                      claims = {
                          iss: account_id,
                          sub: user_id,
                          exp: Time.now.to_i + 15 * 60
                      }
                  
                      JWT.encode(claims, secret_key, 'HS256')
                  end
                  

                  Was this article helpful?

                  Yes
                  No
                  Give feedback about this article

                  Related Articles

                  • Descripción general de la instalación Appcues
                  • Descripción general de las propiedades del usuario
                  • Propiedades recopiladas automáticamente por Appcues
                  • Descripción general de las propiedades del grupo
                  • Descripción general de eventos
                  Appcues logo

                  Product

                  Why Appcues How it works Integrations Security Pricing What's new

                  Use cases

                  Appcues Integration Hub User Onboarding Software Feature Adoption Software NPS & Surveys Announcements Insights Mobile Adoption

                  Company

                  About
                  Careers

                  Support

                  Developer Docs Contact

                  Resources

                  The Appcues Blog Product Adoption Academy GoodUX Case studies Webinar Series Made with Appcues Appcues University

                  Follow us

                  Facebook icon Twitter icon grey Linkedin icon Instagram icon
                  © 2022 Appcues. All rights reserved.
                  Security Terms of Service Privacy Policy

                  Knowledge Base Software powered by Helpjuice

                  Expand