La API de Recall permite que los juegos administren los vínculos entre los usuarios de los PGS y sus cuentas dentro del juego almacenando tokens de recuperación con los servidores de Google. A continuación, se muestra una situación de ejemplo de cómo se podría usar la API de Recall.
Un usuario está jugando un juego en el que el desarrollador tiene un sistema de identidad para seguir su progreso y usa los PGS en paralelo con otros métodos de autenticación para registrar usuarios en su juego. En este ejemplo, un usuario accede a su cuenta de los PGS Laura y crea una cuenta en el juego con el sistema de identidad del desarrollador llamada Racer94. A medida que el usuario juega, el servidor de juegos del desarrollador sincroniza su progreso.
Por separado, el desarrollador guarda un token de recuperación con Google, que se corresponde con la cuenta del usuario en el juego. Google almacena automáticamente ese token de recuperación en el perfil de los PGS del usuario.
Ahora el usuario decide jugar en los GPG en una PC por primera vez. Accede automáticamente con su cuenta de los PGS, y el cliente del juego verifica si hay algún progreso disponible para este usuario. Luego, el servidor de juegos envía una consulta a Google para ver si hay tokens de esta cuenta de los PGS. Dado que existen, Google devuelve el token de recuperación, y el servidor de juegos lo usa para encontrar la cuenta Racer94 asociada del usuario y restablecer su progreso. Dado que acceder con los PGS es una experiencia fluida, la app restablece el progreso del usuario sin necesidad de que el usuario ingrese un nombre de usuario o una contraseña. Además, el desarrollador puede usar el acceso a los PGS con su sistema de identidad existente y emplear Google para almacenar el vínculo entre el progreso del jugador y su cuenta de los PGS.
Como se ve en el ejemplo anterior, la API de Recall realiza dos acciones principales: almacenar el token con Google cuando un usuario accede con una de las dos cuentas en el juego y recuperar el token de un usuario para restablecer sus cuentas.
Además de los tokens de recuperación, la API de Recall también requiere un identificador estable correspondiente a la cuenta en el juego, llamado arquetipo, para aplicar las restricciones de cardinalidad. Imagina que un arquetipo es la etiqueta que representa la cuenta del usuario en el juego dentro del sistema de identidad del desarrollador, y el token de recuperación es una clave que se usa para restablecer la cuenta del usuario en el juego. No se deben volver a usar los valores de arquetipo ni token en diferentes proyectos de los PGS. Además, si bien los tokens de recuperación se pueden cambiar con el tiempo, un arquetipo debe ser estable según la cuenta en el juego del usuario.
Reglas de cardinalidad
La API de Recall aplica una relación 1:1 entre los perfiles de los PGS y las cuentas dentro del juego (denominadas reglas de cardinalidad), en la que un arquetipo solo se puede vincular a un perfil de los PGS, y un perfil de los PGS solo se puede vincular a un arquetipo. El arquetipo se usa como un identificador estable para una cuenta en el juego, ya que los tokens de recuperación pueden cambiar con el tiempo.
El arquetipo vinculado a un perfil de los PGS también puede cambiar con el tiempo (ya que se vinculan diferentes cuentas dentro del juego a este perfil).
Flujos técnicos detallados para almacenar y recuperar los tokens de recuperación
En esta sección, se explica el flujo técnico entre el cliente del juego y los servidores con servidores de Google cuando se almacenan y recuperan tokens de recuperación.
Paso 1: Accede al usuario de los PGS y recupera el ID de sesión
El juego inicializa el SDK de los PGS y, luego, intenta hacer que el usuario acceda con los PGS.
Si el usuario accedió, solicita un ID de sesión del SDK de juegos en el cliente del juego y solicita un token de OAuth 2.0 del backend de OAuth de Google. El ID de sesión y los tokens de OAuth 2.0 se usan para la comunicación con el backend de Juegos de Google.
Paso 2: Recupera cualquier token de recuperación disponible
Solicita cualquier token de recuperación asociado a la cuenta del usuario de los PGS. Si hay un token presente, continúa con el paso 3a y restablece el progreso. De lo contrario, si se trata de un usuario nuevo y no hay un token presente, continúa con el paso 3b y almacena un token nuevo.
Paso 3a: Si hay un token, restablece el progreso
Si hay un token presente, recupera y desencripta el token y restablece los datos del usuario.
Paso 3b: Si no hay un token, almacena uno
Como no hay un token, no se restablece ningún progreso. El usuario accede con el sistema de identidad del desarrollador o crea una cuenta nueva si no hay una existente. Nota: Esto no implica acceder con los PGS (lo que ya se hizo), sino con el sistema de identidad de un desarrollador fuera de los PGS.
Crea un token de recuperación encriptado que codifique la cuenta del usuario en el juego y envíalo a Google junto con el ID de sesión y el token de OAuth 2.0. En este punto, Google crea una asociación entre el token de recuperación que se envió y la cuenta de los PGS del jugador.
Próximos pasos
Para integrar la API de Recall con tu servidor de cliente y de juegos, sigue esta guía.