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
- Abra su proyecto en Cuenta del editor y vaya a la sección de Login.
- Haga clic en Configure en el panel de una opción de Login.
- Vaya al bloque Security y seleccione 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_code
ogrant_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
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:
- Abra su proyecto en Cuenta del editor y vaya a la sección de Login.
- Haga clic en Configure en el panel de una opción de Login.
- Vaya al bloque Security y seleccione la sección 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.
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.
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. Transmitascope=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, transmitascope=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:
- html
<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:
authorization_code
para el parámetrogrant_type
;offline
para 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;code
recibido tras la autenticación o el registro del usuario realizados correctamente 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
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:
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
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.¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.