La API de Recall permite que los juegos administren los vínculos entre los usuarios de los Servicios de juego de Google Play (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. El usuario se autentica 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 la autenticación con los PGS es una experiencia fluida, la app restablece el progreso del usuario sin necesidad de que este ingrese un nombre de usuario o una contraseña. Además, el desarrollador puede usar la autenticación de 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 vio 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 cuentas del juego
Recuperar el token de un usuario para restablecer sus cuentas dentro del juego
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. 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.
Flujos técnicos 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: Autentica al usuario de los PGS y recupera el ID de sesión
El juego inicializa el SDK de los PGS y, luego, intenta autenticar al usuario con los PGS.
Si el usuario se autenticó, 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 continúa con la autenticación de la plataforma con el sistema de identidad del desarrollador o crea una cuenta nueva si no hay una existente. Nota: Esto no implica autenticarse 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.
Flujos para usuarios sin un perfil de PGS
Puedes almacenar tokens de recuperación para un usuario que aún no haya creado un perfil de PGS con el modo sin perfil. Sin embargo, hay dos advertencias importantes:
- No puedes recuperar tokens para un usuario que no tiene un perfil de PGS. La creación de perfiles se solicita automáticamente cuando el usuario intenta acceder a tu juego con los Servicios de juego de Play en un segundo dispositivo.
- Debes seguir lineamientos adicionales para asegurarte de tener un aviso adecuado que describa los siguientes elementos y obtener el consentimiento apropiado del usuario final:
- El hecho de que compartas los datos con Google para habilitar la función de vinculación de cuentas de Play Juegos
- La disponibilidad de parámetros de configuración para administrar este uso compartido, como la configuración de Play Juegos
- El tratamiento de dichos datos en virtud de la Política de Privacidad de Google
Almacena un par de token y arquetipo
- Un usuario sin un perfil de PGS abre un juego que tiene habilitada la función de Recall sin perfil.
- El SDK de Games activa una autenticación automática de la plataforma, que falla porque el usuario no tiene un perfil de PGS.
- El SDK de Games muestra una barra de notificaciones que le informa al usuario que el juego se integró con Google. Esta barra de mensajes es interactiva: el usuario puede inhabilitar la recuperación hasta que se cree un perfil.
- El juego solicita acceso a la función de recuperación. Ten en cuenta que PGS rechaza las solicitudes de acceso a la recuperación cuando hay perfiles de PGS en el dispositivo o cuando no hay Cuentas de Google en el dispositivo. En ese caso, el juego debe continuar sin usar PGS.
- Después de que el usuario accede con una cuenta del juego, este crea un par de token y arquetipo para el usuario que corresponde a su cuenta del juego. El juego almacena este par con Google. Es posible que el juego almacene más tokens más adelante si el usuario accede a otras cuentas del juego.
Cómo iniciar un juego en un dispositivo nuevo
- Un usuario sin un perfil de PGS abre un juego que tiene habilitada la función de recuperación sin perfil en un dispositivo.
- El juego registra un token de recuperación sin perfil, como se describe en Almacena un par de token y arquetipo.
- El usuario abre el mismo juego en otro dispositivo que tiene la misma configuración de cuenta.
- El SDK de Juegos activa la creación del perfil. El usuario puede revisar y rechazar los tokens de Recall almacenados anteriormente. En este momento, el usuario crea un perfil de PGS.
- Se completa la autenticación automática de la plataforma en PGS y el juego recibe el estado de autenticación.
- El juego recupera los tokens de Recall para el usuario como de costumbre.
Próximos pasos
Para integrar la API de Recall con tu servidor de cliente y de juegos, sigue esta guía.