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:
- Conecte el producto Login.
- Establezca el almacenamiento de Xsolla, PlayFab o Firebase.
- Conecte un cliente OAuth 2.0.
Conectar el cliente OAuth 2.0
- Abre tu proyecto en la cuenta y ve a la sección Players > Login.
- Haz clic en Configure en el panel de una opción de Login.
- Ve al bloque Security y selecciona la sección OAuth 2.0.
- Abra su proyecto en la cuenta para juegos en móviles y vaya a Other tools > Login.
- Haga clic en Configure en el panel de una opción de Login.
- Vaya al bloque Security y seleccione OAuth 2.0.
- Abre tu proyecto en la cuenta y ve a la sección Players > Login.
- Haz clic en Configure en el panel de una opción de Login.
- Ve al bloque Security y selecciona la sección OAuth 2.0.
- Abre tu proyecto en la cuenta y ve a la sección Players > Login.
- Haz clic en Configure en el panel de una opción de Login.
- Ve al bloque Security y selecciona la sección OAuth 2.0.
- Abre tu proyecto en la cuenta y ve a la sección Players > Login.
- Haz clic en Configure en el panel de una opción de Login.
- Ve al bloque Security y selecciona la sección OAuth 2.0.
- Haga clic en Add OAuth 2.0 client.
- 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.
- para autenticación mediante servidor:
grant_type=client_credentials; - para autenticación confidencial y pública:
grant_type=authorization_codeogrant_type=refresh_token.
- 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.
- Haz clic en Connect.
- 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.
- 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
- Abra su proyecto en Cuenta del editor y vaya a Players > Login.
- Haga clic en Configure en el panel de una opción de Login.
- Vaya al bloque Security y seleccione OAuth 2.0.
- 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.
- Abra su proyecto en la cuenta para juegos en móviles y vaya a Other tools > Login.
- Haga clic en Configure en el panel de una opción de Login.
- Vaya al bloque Security y seleccione OAuth 2.0.
- 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.
- Abre tu proyecto en la cuenta y ve a la sección Players > Login.
- Haz clic en Configure en el panel de una opción de Login.
- Ve al bloque Security y selecciona la sección OAuth 2.0.
- En la línea del cliente OAuth 2.0 requerido:
- Copia el contenido del campo Client ID.
- Haz clic en Client key para copiar la clave secreta.
- Abre tu proyecto en la cuenta y ve a la sección Players > Login.
- Haz clic en Configure en el panel de una opción de Login.
- Ve al bloque Security y selecciona la sección OAuth 2.0.
- En la línea del cliente OAuth 2.0 requerido:
- Copia el contenido del campo Client ID.
- Haz clic en Client key para copiar la clave secreta.
- Abre tu proyecto en la cuenta y ve a la sección Players > Login.
- Haz clic en Configure en el panel de una opción de Login.
- Ve al bloque Security y selecciona la sección OAuth 2.0.
- En la línea del cliente OAuth 2.0 requerido:
- Copia el contenido del campo Client ID.
- Haz clic en Client key para copiar la clave secreta.
client_id y client_secret de los métodos de Login API. Utilice estos valores cuando trabaje con clientes OAuth 2.0.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:
offlinepara actualizar el token de acceso. Transmitascope=offlineal método de registro o de autenticación.emailpara 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, transmitascope=emailal 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 has configurado la integración mediante el widget de Login, añade los parámetros client_id, response_type, state y redirect_uri al código de inicialización. En el parámetro redirect_uri, debes especificar el valor que se estableció al conectar el cliente OAuth 2.0 en la cuenta. También puedes añadir el parámetro scope.
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 para juegos en móviles. También puede añadir el parámetro scope.
Si has configurado la integración mediante el widget de Login, añade los parámetros client_id, response_type, state y redirect_uri al código de inicialización. En el parámetro redirect_uri, debes especificar el valor que se estableció al conectar el cliente OAuth 2.0 en la cuenta. También puedes añadir el parámetro scope.
- html
1<script>
2const xl = new XsollaLogin.Widget({
3 projectId: 'LOGIN_PROJECT_ID',
4 preferredLocale: 'en_US',
5 clientId: 'CLIENT_ID',
6 responseType: 'code',
7 state: 'CUSTOM_STATE',
8 redirectUri: 'REDIRECT_URI',
9 scope: 'SCOPE'
10});
11</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 SDK de Xsolla admiten la autenticación basada en el protocolo OAuth 2.0. Para configurar el cliente OAuth 2.0, elija el motor o la plataforma del juego 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:
authorization_codepara el parámetrogrant_type;offlinepara el parámetroscope(necesario para la renovación posterior del token de acceso);client_id- valor de configuración del cliente OAuth 2.0;client_secret- valor de configuración del cliente OAuth 2.0 (no es necesario para el cliente OAuth 2.0 público);redirect_uri- el valor que se estableció al conectar el cliente OAuth 2.0 en la Cuenta del editor;coderecibido tras la autenticación o el registro del usuario realizados correctamente en la aplicación.
Para obtener un token de acceso de usuario, utilice el método Generate JWT con los siguientes valores de parámetro:
authorization_codepara el parámetrogrant_type;offlinepara el parámetroscope(necesario para la renovación posterior del token de acceso);client_id- valor de configuración del cliente OAuth 2.0;client_secret- valor de configuración del cliente OAuth 2.0 (no es necesario para el cliente OAuth 2.0 público);redirect_uri- el valor que se estableció al conectar el cliente OAuth 2.0 en la cuenta para juegos en móviles;coderecibido tras la autenticación o el registro del usuario realizados correctamente en la aplicación.
Para obtener un token de acceso de usuario, utiliza el método Generate JWT con los siguientes valores de parámetro:
authorization_codepara el parámetrogrant_type;offlinepara el parámetroscope(necesario para la renovación posterior del token de acceso);client_id— valor de configuración del cliente OAuth 2.0;client_secret— valor de configuración del cliente OAuth 2.0 (no requerido para el cliente OAuth 2.0 público);redirect_uri— el valor que se estableció al conectar el cliente OAuth 2.0 en la cuenta;coderecibido tras la autenticación o el registro exitoso del usuario en la aplicación.
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:
http
- http
- curl
1POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
2Content-Type: application/x-www-form-urlencoded
3
4client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&code=ldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=authorization_code&redirect_uri=https://my-website.com/callback
1curl --request POST \
2 --url https://login.xsolla.com/api/oauth2/token \
3 --header 'content-type: application/x-www-form-urlencoded' \
4 --data grant_type=authorization_code \
5 --data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
6 --data client_id=11 \
7 --data redirect_uri=https://my-website.com/callback \
8 --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:
http
- http
- curl
1POST https://login.xsolla.com/api/oauth2/token HTTP/1.1
2Content-Type: application/x-www-form-urlencoded
3
4client_id=11&client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik&grant_type=refresh_token&refresh_token=111dfgdfgdf&redirect_uri=https://my-website.com/callback
1curl --request POST \
2 --url https://login.xsolla.com/api/oauth2/token \
3 --header 'content-type: application/x-www-form-urlencoded' \
4 --data grant_type=refresh_token \
5 --data client_secret=vGbXcsQ0CEW233m2qldYkd5IxbnRKoWt2YiBOgHYJGRGQwtIAdtxgxT64ik \
6 --data client_id=11 \
7 --data redirect_uri=https://my-website.com/callback \
8 --data refresh_token=111dfgdfgdf
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 [email protected].¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.