Login / Inicio de sesión único
  Volver a Documentos

Login

Inicio de sesión único

Cómo funciona

Si tiene varios servicios conectados con una sola cuenta común para la autenticación de usuarios, puede utilizar Inicio de sesión único. El sitio web del juego funciona como un servicio. Permitirá al usuario introducir sus credenciales una sola vez. Después, al abrir uno de los servicios conectados, el usuario ya estará autenticado.

Flujo de interacción

  1. Un usuario no autenticado abre uno de los servicios.
  2. Su cliente envía la solicitud Check user authentication al servidor de Xsolla Login y recibe el error 401.
  3. Su cliente abre el formulario de autenticación (widget de Login o su interfaz de inicio de sesión) para el usuario.
  4. El usuario se autentica a través de un nombre de usuario y contraseña o a través de una red social.

  1. Su cliente autentica al usuario en su proyecto de Login:
    • Las siguientes solicitudes se utilizan cuando se integra Login a través de llamadas API:
      • autenticación a través de nombre de usuario y contraseña (JWT y OAuth 2.0).
      • autenticación mediante redes sociales (JWT y OAuth 2.0).
    • El protocolo OAuth 2.0 se utiliza al integrar Login a través del widget.
    Los datos de sesión del usuario se guardan en el servidor de Xsolla Login. El servidor envía login_uri que contiene redirect_uri con code en el parámetro de consulta.

  1. Su cliente redirige al usuario a redirect_uri.
  2. Su servidor envía la solicitud Generate JWT para cambiar el code recibido por un JWT. El usuario se autentica en el servicio.
  3. El usuario abre otro servicio.
  4. Su cliente envía la solicitud Check user authentication al servidor de Xsolla Login y recibe login_uri que contiene redirect_uri con code en el parámetro de consulta.
  5. Su servidor envía la solicitud Generate JWT para cambiar la code recibido por un JWT. El usuario se autentica en el segundo servicio.

Diferenciar los derechos de acceso a los distintos servicios

Para diferenciar los derechos de acceso de cuentas de usuario para los distintos servicios, puede utilizar valores especiales del parámetro scope (p. ej., scope=playfab) en distintos clientes de OAuth 2.0.

¿Quién puede utilizarlo?

Socios que ya han integrado Login y utilizan las base de datos de Xsolla, Firebase o PlayFab.

Cómo conseguirlo

Para conectar el Inicio de sesión único (Single Sign-on):

  1. Conecte el protocolo OAuth 2.0.
  2. Implemente la devolución de llamada de solicitud de obtención de sesión de usuario.

Conectar el protocolo OAuth 2.0

Siga las instrucciones para conectar el protocolo OAuth 2.0. Puede utilizar un cliente de OAuth 2.0 para todos los servicios o crear un cliente de OAuth 2.0 independiente para cada servicio.

Solicitud de llamada para la obtención de sesión de usuario

Implemente la devolución de llamada de solicitud Check user authentication al abrir su servicio. La solicitud debe ejecutarse antes de abrir el formulario de autenticación para el usuario. Para la autenticación, utilice los parámetros del cliente de OAuth 2.0 del servicio exacto en el que el usuario quiere autenticarse.

Ejemplo de solicitud:

Copy
Full screen
Small screen

http

  • http
  • curl
GET https://login.xsolla.com/api/oauth2/sso?client_id=<client_id>&redirect_uri=<redirect_uri>&scope=<scope>&state=<state>&response_type=code HTTP/1.1
curl --request GET \
  --url 'https://login.xsolla.com/api/oauth2/sso?redirect_uri=redirect_uri&response_type=code&state=state&scope=scope&client_id=client_id'

Ejemplo de respuesta cuando el usuario está autenticado:

Copy
Full screen
Small screen
HTTP/1.1 200 OK
Content-Type: application/json

{
  "login_url": "<redirect_uri>?code=<code>"
}

Para obtener un JWT de usuario:

  1. Su cliente implementa y utiliza la solicitud que redirige al usuario a la redirect_uri recibida.
  2. Su servidor envía la solicitud Generate JWT con loscode y grant_type=authorization_code recibidos para obtener un JWT.

Ejemplo de respuesta cuando el usuario no está autenticado:

Copy
Full screen
Small screen
HTTP/1.1 401 Unauthorized
Content-Type: application/json

{
  "error": {
    "code": "003-040",
    "description": "User is unauthorized."
  }
}
¿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: 31 de Julio 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!