Almacenamiento personalizado
Si utiliza el almacenamiento personalizado, tendrá acceso a:
- registro de usuario
- autenticación mediante nombre de usuario y contraseña
- autenticación sin contraseña mediante número de teléfono
- autenticación mediante redes sociales
- restablecimiento de contraseña de usuario
Flujo de interacción
Puede utilizar el widget de inicio de sesión (Login) o su aplicación, que usa las llamadas Login API como un cliente. El flujo de interacción entre el cliente y el servidor de Xsolla Login es el siguiente:
- El cliente envía solicitudes al servidor de Xsolla Login. El formato de las solicitudes se describe en los puntos finales JWT, y Password.
- El servidor de Xsolla Login envía solicitudes a su servidor. Siga las instrucciones para validar las solicitudes.
- El servidor de Xsolla Login procesa una respuesta de su servidor y devuelve los resultados al cliente.
- El cliente procesa la respuesta.
- Como cualquier objeto JSON.
- Como una matriz de objetos con atributos de usuario. Los objetos deben tener la siguiente estructura:
Parámetro | Tipo | Descripción |
---|---|---|
attr_type | string | Definición del nivel de acceso del usuario a los atributos de servicio:
|
clave | string | El nombre del atributo que se utiliza para identificar el atributo del usuario. Debe ser único para cada usuario. Longitud máxima: 256 símbolos. Se pueden utilizar números, caracteres latinos, guiones y guiones bajos. |
permiso | string o null | El tipo de acceso a los atributos del usuario afecta a la lista de atributos devuelta por los métodos:
Valores posibles: public y private (por defecto). |
read_only | string | Si el atributo está protegido, o no, de las modificaciones. Por defecto, se permite false y cambiar los valores del atributo. |
valor | string | El valor del atributo de usuario. Longitud máxima: 256 símbolos. |
Registro de usuarios
- El cliente envía la solicitud
Register new user al servidor de Xsolla Login. - El servidor de Xsolla Login envía una solicitud a la URL de nuevo usuario. La respuesta debe tener el formato descrito en este flujo de integración. En la respuesta, se puede especificar una lista de atributos de usuario o cualquier objeto JSON necesario. El objeto JSON que proporcione en la respuesta se registra en el campo
partner_data
del JWT del usuario.
http
- http
- curl
POST https://your.hostname/your_registration_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{
"email":"j.smith@email.com",
"password":"123456",
"username":"j.smith@email.com"
}
curl --request POST \
--url 'https://your.hostname/your_registration_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json' \
--data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'
Ejemplo de respuesta con atributos de usuario:
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Ejemplo de respuesta con un objeto JSON:
- json
{ "region": "Asia",
"type": "new"
}
- Los datos del usuario se escriben en la base de datos de Xsolla, mientras que el
email
se marca como sin confirmar. El usuario recibirá un correo electrónico de confirmación de cuenta. - Si ha integrado el widget de Login, el usuario será redirigido a la página con el siguiente mensaje: Por favor, confirma tu cuenta siguiendo las instrucciones que enviamos a {email}.
- Si el registro del usuario no se realiza correctamente, puede proporcionar un mensaje de error que se mostrará en el widget de autenticación. Para ello, en la respuesta a la solicitud de creación de usuario, transmita un objeto de
error
con los siguientes detalles:- en el parámetro de
code
, especifique011-002
. - En el parámetro de
description
, facilite el texto del mensaje de error.
- en el parámetro de
- json
{
"error": {
"code": "011-002",
"description": "<string>"
}
}
Autenticación mediante nombre de usuario y contraseña
- El cliente envía la solicitud
Auth by username and password al servidor de Xsolla Login. - El servidor de Xsolla Login envía una solicitud a la URL de verificación de usuario. La respuesta debe tener el formato descrito en este flujo de interacción. En la respuesta, se puede especificar una lista de atributos de usuario o cualquier objeto JSON necesario. El objeto JSON que proporcione en la respuesta se registra en el campo
partner_data
del JWT del usuario.
http
- http
- curl
POST https://your.hostname/your_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{
"email":"j.smith@email.com",
"password":"123456",
"username":"j.smith@email.com"
}
curl --request POST \
--url 'https://your.hostname/your_authentication_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json' \
--data '{"email":"j.smith@email.com","password":"123456","username":"j.smith@email.com"}'
Ejemplo de respuesta con atributos de usuario:
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Ejemplo de respuesta con un objeto JSON:
- json
{ "region": "Asia",
"type": "new"
}
- El servidor de Xsolla Login genera un JWT de usuario.
- El usuario es redirigido a
login_url
con un parámetro de consultatoken
. El parámetrotoken
contiene el JWT de usuario.
Autenticación sin contraseña mediante número de teléfono
- El cliente abre un formulario de autenticación para que el usuario pueda introducir su número de teléfono.
- El usuario introduce su número de teléfono.
- El cliente envía la solicitud
Start auth by phone number al servidor de Xsolla Login. - El cliente muestra un campo para que el usuario pueda rellenar el código de verificación.
- El usuario introduce el código de verificación recibido.
- El cliente envía la solicitud
Complete auth by phone number al servidor de Xsolla Login. - Si se trata de la primera autorización del usuario, el servidor de Xsolla Login envía una solicitud a la URL de inicio de sesión sin contraseña vía teléfono. La respuesta debe tener el formato descrito en este flujo de integración. En la respuesta, se puede especificar una lista de atributos de usuario o cualquier objeto JSON necesario. El objeto JSON que proporcione en la respuesta se registra en el campo
partner_data
del JWT del usuario.
http
- http
- curl
POST https://your.hostname/your_phone_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{
"login": "+12025550140",
"type": "phone"
}
curl --request POST \
--url 'https://your.hostname/your_phone_authentication_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json' \
--data '{"login":"+12025550140","type":"phone"}'
Ejemplo de respuesta con atributos de usuario:
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Ejemplo de respuesta con un objeto JSON:
- json
{ "region": "Asia",
"type": "new"
}
Autenticación sin contraseña con correo electrónico
- El cliente abre un formulario de autenticación para que el usuario pueda introducir su correo electrónico.
- El usuario introduce su correo electrónico.
- El cliente envía la solicitud
Start auth by email al servidor de Xsolla Login. - El cliente muestra un campo para que el usuario pueda rellenar el código de verificación.
- El usuario introduce el código de verificación recibido.
- El cliente envía la solicitud
Complete auth by email al servidor de Xsolla Login. - Si se trata de la primera autorización del usuario, el servidor de Xsolla Login envía una solicitud a la URL de inicio de sesión sin contraseña vía correo electrónico. La respuesta debe tener el formato descrito en este flujo de integración. En la respuesta, se puede especificar una lista de atributos de usuario o cualquier objeto JSON necesario. El objeto JSON que proporcione en la respuesta se registra en el campo
partner_data
del JWT del usuario.
http
- http
- curl
POST https://your.hostname/your_email_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{
"email": "user@mail.com",
"type": "email"
}
curl --request POST \
--url 'https://your.hostname/your_email_authentication_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json' \
--data '{"email": "user@mail.com","type": "email"}'
Ejemplo de respuesta con atributos de usuario:
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Ejemplo de respuesta con un objeto JSON:
- json
{ "region": "Asia",
"type": "new"
}
Autenticación mediante redes sociales
Para obtener los datos del usuario al autenticarse a través de redes sociales, especifique la URL de inicio de sesión mediante red social en la configuración de su proyecto de Login en Cuenta del editor (sección User database > Storage > Custom storage). A esta URL se envía una solicitud con los datos recibidos de la red social.
Flujo de autenticación:
- El cliente envía la solicitud
Auth via social network al servidor de Xsolla Login. - El usuario inicia sesión en una red social.
- El servidor de Xsolla Login procesa los datos de usuario recibidos de la red social y envía una solicitud a URL de inicio de sesión mediante red social. La respuesta debe tener el formato descrito en el escenario. En la respuesta, se puede especificar una lista de atributos de usuario o cualquier objeto JSON necesario. El objeto JSON que proporcione en la respuesta se registra en el campo
partner_data
del JWT del usuario.
Authorization: Bearer <JWT>
. El JWT de usuario transmitido en la solicitud contiene los siguientes datos:Reclamación | Tipo | Descripción |
---|---|---|
exp | Marca de tiempo Unix | La fecha y hora de expiración del JWT. El ciclo de vida del JWT es de 7 minutos. Obligatorio. |
iat | Marca de tiempo Unix | La fecha y la hora en que se emitió el JWT. Obligatorio. |
iss | string | El servicio que firmó el JWT: https://login.xsolla.com . Obligatorio. |
request_type | string | Constante: gateway_request . Obligatorio. |
xsolla_login_project_id | string (cadena) (UUID) | Su ID de proyecto de Login en Cuenta del editor. Obligatorio. |
string | Dirección de correo electrónico del usuario. | |
sub | string (cadena) (UUID) | ID de usuario escrito en el lado del servidor de Xsolla Login. Obligatorio. |
username | string | Nombre de usuario. |
provider | string | Nombre de la red social utilizada para la autenticación. Obligatorio. |
id | string | ID de usuario en una red social. Obligatorio. |
social_access_token | string | Token de acceso de la red social a través de la cual se autenticó el usuario. Para activar la transmisión de esta notificación, contacte con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com. |
partner_data | string | Datos de cualquier tipo devueltos por su servidor en el cuerpo de la respuesta durante la autenticación. Para activar la transmisión de esta notificación, contacte con su gestor del éxito del cliente o envíe un correo electrónico a csm@xsolla.com. |
- json
{
"exp": 1573635020,
"iat": 1573634600,
"iss": "https://login.xsolla.com",
"request_type": "gateway_request",
"xsolla_login_project_id": "00000000-0000-0000-0000-000000000000",
"sub": "00000000-0000-0000-0000-000000000000",
"email": "example@test.com",
"username": "Smith707",
"provider": "google",
"id": "123",
}
Ejemplo de respuesta de URL de nuevo usuario:
http
- http
- curl
POST https://your.hostname/your_social_authentication_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{}
curl --request POST \
--url 'https://your.hostname/your_social_authentication_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json'
Ejemplo de respuesta con atributos de usuario:
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Ejemplo de respuesta con un objeto JSON:
- json
{ "region": "Asia",
"type": "new"
}
Restablecimiento de contraseña de usuario
- El cliente envía la solicitud
Reset password al servidor de Xsolla Login. - El servidor de Xsolla Login envía al usuario un correo electrónico de confirmación de restablecimiento de contraseña.
- Tras confirmar el restablecimiento de contraseña en el correo electrónico, se redirige al usuario a la página donde puede introducir una nueva contraseña.
- El usuario introduce una nueva contraseña.
- El servidor de Xsolla Login envía una solicitud a la URL de restablecimiento de contraseña.
Ejemplo de respuesta de URL de nuevo usuario:
http
- http
- curl
POST https://your.hostname/your_reset_uri HTTP/1.1
Authorization: Bearer {JWT}
Content-Type: application/json
{
"username": "john@gmail.com",
"fields": {
"password": "NewPa$$word1"
}
}
curl --request POST \
--url 'https://your.hostname/your_reset_uri' \
--header 'authorization: bearer_JWT' \
--header 'content-type: application/json' \
--data '{"email":"john@gmail.com","fields":{"password":"NewPa$$word1"}}'
Seguir leyendo
Enlaces útiles
Cómo conectar un almacenamiento personalizado¿Has encontrado una errata u otro error de texto? Selecciona el texto y pulsa Ctrl+Intro.