Armazenamento personalizado
Se você usa armazenamento personalizado, você tem acesso a:
- autenticação de cadastro
- autenticação via nome de usuário e senha
- autenticação sem senha via número de telefone
- autenticação via redes sociais
- redefinição de senha de usuário
Fluxo de interação
Você pode usar o widget de login ou o seu aplicativo, que usa chamadas de Login API, como um cliente. O fluxo de interação entre o cliente e o servidor Xsolla Login é o seguinte:
- O cliente envia solicitações para o servidor Xsolla Login. O formato de solicitações é descrito em pontos de extremidade JWT e Password.
- O servidor Xsolla Login envia solicitações para o seu servidor. Siga as instruções para validar as solicitações.
- O servidor Xsolla Login processa uma resposta do seu servidor e retorna o resultado para o cliente.
- O cliente processa a resposta.
- Como qualquer objeto JSON.
- Como uma matriz de objetos com atributos de usuário. Os objetos devem ter a seguinte estrutura:
Parâmetro | Tipo | Descrição |
---|---|---|
attr_type | string | Definição do nível de acesso do usuário aos atributos de serviço:
|
chave | string | O nome do atributo usado para identificar o atributo do usuário. Deve ser exclusivo para cada usuário. Comprimento máximo: 256 símbolos. Você pode usar números, letras latinas, hifens e sublinhados. |
permissão | cadeia de caracteres ou null | O tipo de acesso aos atributos do usuário afeta a lista de atributos retornados pelos métodos:
Possible values: public , private (padrão). |
read_only | string | Se o atributo está protegido contra modificações ou não. Por padrão, false e alterar os valores do atributo é permitido. |
valor | string | O valor do atributo do usuário. Comprimento máximo: 256 símbolos. |
Cadastro de usuários
- O cliente envia a solicitação
Register new user para o servidor Xsolla Login. - O servidor de Xsolla Login envia uma solicitação para o URL de novo usuário. A resposta deve estar no formato descrito neste fluxo de integração. Na resposta, você pode especificar uma lista de atributos de usuário ou qualquer objeto JSON necessário. O objeto JSON fornecido em resposta é registrado no campo
partner_data
do JWT do usuário.
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"}'
Exemplo de uma resposta com atributos de usuário:
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Exemplo de uma resposta com um objeto JSON:
- json
{ "region": "Asia",
"type": "new"
}
- Os dados do usuário serão registrados no banco de dados Xsolla enquanto o
email
estiver sinalizado como não confirmado. O usuário receberá um e-mail de confirmação de conta. - Se você integrou o Login Widget, o usuário será redirecionado à página com a seguinte mensagem: Confirme sua conta seguindo as instruções enviadas para {email}.
- Se o cadastro do usuário não for bem sucedido, você poderá fornecer uma mensagem de erro que será exibida no widget de autenticação. Para fazer isso, na resposta à solicitação de criação do usuário, passe um objeto de
error
com os seguintes detalhes:- No parâmetro
code
, especifique011-002
. - No parâmetro
description
, forneça o texto da mensagem de erro.
- No parâmetro
- json
{
"error": {
"code": "011-002",
"description": "<string>"
}
}
Autenticação via nome de usuário e senha
- O cliente envia a solicitação
Auth by username and password para o servidor Xsolla Login. - O servidor de Xsolla Login envia uma solicitação para o URL de verificação de usuário. A resposta deve estar no formato descrito neste fluxo de integração. Na resposta, você pode especificar uma lista de atributos de usuário ou qualquer objeto JSON necessário. O objeto JSON fornecido em resposta é registrado no campo
partner_data
do JWT do usuário.
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"}'
Exemplo de uma resposta com atributos de usuário:
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Exemplo de uma resposta com um objeto JSON:
- json
{ "region": "Asia",
"type": "new"
}
- O servidor Xsolla Login gera um JWT de usuário.
- O usuário é redirecionado para o parâmetro
login_url
com uma solicitação detoken
. O parâmetrotoken
contém o JWT de usuário.
Autenticação sem senha via número de telefone
- O cliente abre um formulário de autenticação para que o usuário possa inserir seu número de telefone.
- O usuário insere seu número de telefone.
- O cliente envia a solicitação
Start auth by phone number para o servidor Xsolla Login. - O cliente mostra um campo para que o usuário possa preencher o código de verificação.
- O usuário insere o código de verificação recebido.
- O cliente envia a solicitação
Complete auth by phone number para o servidor Xsolla Login. - Se for a primeira autorização do usuário, o servidor Xsolla Login envia uma solicitação para o URL de login sem senha com o celular. A resposta deve estar no formato descrito neste fluxo de integração. Em resposta, você pode especificar uma lista de atributos de usuário ou qualquer objeto JSON necessário. O objeto JSON fornecido em resposta será registrado no campo
partner_data
no JWT do usuário.
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"}'
Exemplo de uma resposta com atributos de usuário:
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Exemplo de uma resposta com um objeto JSON:
- json
{ "region": "Asia",
"type": "new"
}
Autenticação sem senha via e-mail
- O cliente abre um formulário de autenticação para que o usuário possa inserir seu endereço de e-mail.
- O usuário insere seu endereço de e-mail.
- O cliente envia a solicitação
Start auth by email para o servidor Xsolla Login. - O cliente mostra um campo para que o usuário possa preencher o código de verificação.
- O usuário insere o código de verificação recebido.
- O cliente envia a solicitação
Complete auth by email para o servidor Xsolla Login. - Se for a primeira autorização do usuário, o servidor Xsolla Login envia uma solicitação para o URL de autenticação sem senha via e-mail. A resposta deve estar no formato descrito neste fluxo de integração. Em resposta, você pode especificar uma lista de atributos de usuário ou qualquer objeto JSON necessário. O objeto JSON fornecido em resposta será registrado no campo
partner_data
no JWT do usuário.
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"}'
Exemplo de uma resposta com atributos de usuário:
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Exemplo de uma resposta com um objeto JSON:
- json
{ "region": "Asia",
"type": "new"
}
Autenticação via redes sociais
Para obter dados do usuário ao autenticar via redes sociais, especifique o Social Login URL nas configurações do seu projeto Login na Conta de Distribuidor (seção User database > Storage > Custom storage). Uma solicitação com dados recebidos da rede social é enviada para esse URL.
Fluxo de autenticação:
- O cliente envia a solicitação
Auth via social network para o servidor Xsolla Login. - O usuário faz login em uma rede social.
- O servidor Xsolla Login processa os dados do usuário recebidos da rede social e envia uma solicitação para o URL de login social. A resposta deve estar no formato descrito no cenário. Na resposta, você pode especificar uma lista de atributos de usuário ou qualquer objeto JSON necessário. O objeto JSON fornecido em resposta é registrado no campo
partner_data
do JWT do usuário.
Authorization: Bearer <JWT>
. O usuário JWT passado na solicitação contém os seguintes dados:Reivindicar | Tipo | Descrição |
---|---|---|
exp | Carimbo de data/hora Unix | A data e a hora do vencimento do JWT. A vida útil do JWT é de 7 minutos. Obrigatório. |
iat | Carimbo de data/hora Unix | A data e a hora em que o JWT é emitido. Obrigatório. |
iss | string | O serviço que assinou o JWT: https://login.xsolla.com . Obrigatório. |
request_type | string | Constante: gateway_request . Obrigatório. |
xsolla_login_project_id | cadeia de caracteres (UUID) | Seu ID de projeto de Login na Conta de Distribuidor. Obrigatório. |
string | Endereço de e-mail do usuário. | |
sub | cadeia de caracteres (UUID) | ID do usuário escrito no lado do servidor Xsolla Login. Obrigatório. |
username | string | Nome de usuário. |
provider | string | Nome de uma rede social usada para autenticação. Obrigatório. |
id | string | ID de usuário em uma rede social. Obrigatório. |
social_access_token | string | Token de acesso da rede social pela qual o usuário fez a autenticação. Para ativar a transmissão dessa reivindicação, entre em contato com seu Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com. |
partner_data | string | Dados de qualquer tipo são retornados pelo seu servidor no corpo de resposta durante a autenticação. Para habilitar a transmissão dessa reivindicação, contate seu Gerente de Sucesso do Cliente ou envie um e-mail para 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",
}
Exemplo de resposta de URL do novo usuário:
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'
Exemplo de uma resposta com atributos de usuário:
- json
{
"attributes": [
{
"attr_type": "server",
"key": "company",
"permission": "private",
"value": "facebook-promo"
},
{
"attr_type": "server",
"key": "custom-id",
"permission": "private",
"value": 48582
}
]
}
Exemplo de uma resposta com um objeto JSON:
- json
{ "region": "Asia",
"type": "new"
}
Redefinição de senha do usuário
- O cliente envia a solicitação
Reset password para o Xsolla Login Server. - O servidor Xsolla Login envia ao usuário um e-mail de confirmação de redefinição de senha.
- Após confirmar a redefinição de senha no e-mail, o usuário é redirecionado para a página onde pode inserir uma nova senha.
- O usuário insere uma nova senha.
- O servidor Xsolla Login envia uma solicitação para o Password reset URL.
Exemplo de resposta de URL do novo usuário:
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"}}'
Continuar lendo
Links úteis
Como conectar o armazenamento personalizadoEncontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.