Login / Protocolo OAuth 2.0
  Volver a Documentos

Login

Protocolo OAuth 2.0

Descripción general

El producto Login es compatible con el protocolo estándar OAuth 2.0 para el registro y la autenticación de usuarios. El protocolo de autorización estándar OAuth 2.0 se centra en la facilidad de desarrollo de aplicaciones cliente y permite renovar los tókenes de acceso sin la participación del usuario. Encontrará información detallada sobre el protocolo OAuth 2.0 en su sitio web oficial. El JWTde usuario se utiliza como token de acceso.

La interacción entre su cliente OAuth 2.0 y el servidor de Xsolla Login se explica a continuación:

Para establecer el protocolo OAuth 2.0:

  1. Conecte el producto Login.
  2. Establezca el almacenamiento de Xsolla, PlayFab o Firebase.
  3. Conecte un cliente OAuth 2.0.

Conectar el cliente OAuth 2.0

  1. Abra su proyecto en Cuenta del editor y vaya a la sección de Login.
  2. Haga clic en Configure en el panel de una opción de Login.
  3. Vaya al bloque Security y seleccione la sección OAuth 2.0.
  1. Haga clic en Add OAuth 2.0 client.
  1. En la ventana modal, especifique:
    • Client name.
    • Las URL a las que se redirige a los usuarios tras la verificación de la cuenta, la autenticación correcta o la confirmación del restablecimiento de la contraseña.
    • Tipo de autenticación: pública, confidencial o de servidor.
Nota
Para obtener información sobre los tipos de autenticación (tipos de cliente), consulte El marco de autorización de OAuth 2.0 y Aplicaciones confidenciales y públicas. Los tipos de autenticación confidencial y mediante servidor usan un cliente confidencial, pero difieren en la forma en que conceden acceso a la aplicación (para más detalles, consulte Tipos de concesión de aplicaciones):
  • para autenticación mediante servidor: grant_type=client_credentials;
  • para autenticación confidencial y pública: grant_type=authorization_code o grant_type=refresh_token.
Si usa la integración a través de la API de Login , deberá tener en cuenta las siguientes características a la hora de elegir el tipo de autenticación:
  • El cliente confidencial requiere el uso de ID de cliente y clave secreta al llamar al método Generate JWT para obtener o actualizar un token de acceso.
  • El cliente público requiere el uso del ID de cliente únicamente.
  • La llamada al método JWT auth by username and password solo está disponible para la autenticación pública.

  1. Haz clic en Connect.

  1. Se generará un ID de cliente y una clave secreta que se requieren para establecer la autenticación OAuth 2.0 en su aplicación.

  1. En la ventana de diálogo, copie el ID de cliente y la Clave secreta utilizando los botones de copia.

Obtener la configuración del cliente OAuth 2.0

Si no copió el ID de cliente y la clave secreta al conectar el cliente de OAuth 2.0, deberá hacer lo siguiente para acceder a estos datos:

  1. Abra su proyecto en Cuenta del editor y vaya a la sección de Login.
  2. Haga clic en Configure en el panel de una opción de Login.
  3. Vaya al bloque Security y seleccione la sección OAuth 2.0.
  4. En la línea del cliente de OAuth 2.0 requerido:
    • Copie el contenido del campo Client ID.
    • Haga clic en Client key para copiar la clave secreta.

El ID de cliente y la clave secreta corresponden a los parámetros client_id y client_secret de los métodos de Login API. Utilice estos valores cuando trabaje con clientes OAuth 2.0.

Nota
Cuando implemente la autenticación OAuth 2.0 en su aplicación, le recomendamos que utilice el código de las bibliotecas de cliente . Esto le ayudará a proteger tu información y los datos de sus usuarios.

Integración en el lado de la aplicación

Están disponibles las siguientes opciones de integración:

Cuando se trabaja con Login API y el widget de Login, se utiliza el parámetro scope. Puede tomar los siguientes valores:

  • offline para actualizar el token de acceso. Transmita scope=offline al método de registro o de autenticación.
  • email para solicitar la dirección de correo electrónico del usuario cuando se autentique a través de una red social. Si ha integrado el producto de Login a través de la Login API, transmita scope=email al método de registro o autenticación. Si la integración se realiza a través del widget de Login, configure la recopilación de direcciones de correo electrónico de los usuarios mediante la instrucción Recopilar direcciones de correo electrónico y números de teléfono.

Integración mediante widget de Login

Si ha configurado la integración mediante el widget de Login, añada los parámetros client_id, response_type, state y redirect_uri al código de inicialización . En el parámetro redirect_uri, debe especificar el valor que se estableció al conectar el cliente OAuth 2.0 en la Cuenta del editor. También puede añadir el parámetro scope.

Ejemplo de solicitud:

Copy
Full screen
Small screen
<script>
const xl = new XsollaLogin.Widget({
  projectId: 'LOGIN_PROJECT_ID',
  preferredLocale: 'en_US',
  clientId: 'CLIENT_ID',
  responseType: 'code',
  state: 'CUSTOM_STATE',
  redirectUri: 'REDIRECT_URI',
  scope: 'SCOPE'
});
</script>

Integración mediante Login API

Utilice los métodos API para el protocolo OAuth 2.0 para registrar y autenticar usuarios. Si ya ha integrado métodos para el estándar JWT, sustitúyalos por llamadas a métodos OAuth 2.0.

Al llamar a métodos de autenticación, intercambie el parámetro recibido code por un token de acceso.

Integración mediante SDK de Xsolla

Los SDKs de Xsolla admiten la autenticación basada en el protocolo OAuth 2.0. Para establecer el cliente OAuth 2.0, elija el motor de juego o la plataforma y siga las instrucciones:

Obtener un token de acceso

Para obtener un token de acceso de usuario, utilice el método Generate JWT con los siguientes valores de parámetro:

La respuesta del método API devolverá los siguientes tókenes:

  • access_token - un token de acceso. El periodo de validez por defecto es de 1 hora.
  • refresh_token - un token de actualización. El periodo de validez no está limitado.

Ejemplo de solicitud:

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback
curl --request POST \
  --url https://login.xsolla.com/api/oauth2/token \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data grant_type=authorization_code \
  --data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
  --data client_id=11 \
  --data redirect_uri=https://my-website.com/callback \
  --data code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik

Actualizar un token de acceso

Cuando el token de acceso expire, utilice el método Generate JWT para actualizarlo con el parámetro grant_type igual a refresh_token y el último valor del token de actualización (refresh_token) recibido.

La respuesta del método API devolverá un nuevo par de tókenes: el token de acceso access_token y el token de actualización refresh_token, que podrán actualizarse entonces de nuevo.

Ejemplo de solicitud:

Copy
Full screen
Small screen

http

  • http
  • curl
POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
Content-Type: application/x-www-form-urlencoded

client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=refresh_token&refresh_token=111dfgdfgdf&redirect_uri=https://my-website.com/callback
curl --request POST \
  --url https://login.xsolla.com/api/oauth2/token \
  --header 'content-type: application/x-www-form-urlencoded' \
  --data grant_type=refresh_token \
  --data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
  --data client_id=11 \
  --data redirect_uri=https://my-website.com/callback \
  --data refresh_token=111dfgdfgdf
Nota
El producto Login admite por defecto un máximo de cinco sesiones de usuario simultáneas. Con cada nueva autenticación de usuario, el par de tókenes access_token y refresh_token recibido por ese usuario antes de los últimos cinco pares de tókenes pierde su validez. Para cambiar el límite del número de sesiones de usuario simultáneas, contacte con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com.
¿Te ha resultado útil este artículo?
¡Gracias!
¿Hay algo en lo que podamos mejorar? Mensaje
Lo sentimos
Por favor, cuéntanos por qué no te ha resultado útil este artículo. Mensaje
¡Gracias por tu mensaje!
Nos ayudará a mejorar tu experiencia.
Última actualización: 18 de Septiembre de 2024

¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.

Informar de un problema
Nos esforzamos por ofrecer contenido de calidad. Tus comentarios nos ayudan a mejorar.
Déjanos tu correo electrónico para que te podamos responder
¡Gracias por tu mensaje!