Como usar chamadas do Login Widget SDK API
Você pode trabalhar com as chamadas do Login Widget SDK API separadamente do widget de Login se quiser:
- use seu próprio design de widget
- implementar parcialmente o fluxo do widget de Login
Observação
Nem todas as chamadas de API oferecem suporte a esse cenário.
Inicialização de código
Para usar as chamadas do Login Widget SDK API sem um widget, conecte o seguinte código ao marcador <body>
:
Copy
<script>
const api = new XsollaLogin.Api({
projectId: 'someProjectId'
});
</script>
O código de inicialização ao usar um pacote-npm:
Copy
import XsollaLogin from '@xsolla/login-sdk';
const api = new XsollaLogin.Api({
projectId: 'someProjectId'
});
Os seguintes parâmetros são passados no código de inicialização:
Parâmetro | Tipo | Descrição |
---|---|---|
projectId | string | ID do seu projeto Login na Conta de Distribuidor. Obrigatório. |
fullLocale | string | O idioma da interface e uma região no formato <language code>_<country code> , onde:
O parâmetro afeta a classificação das redes sociais pela frequência de uso na região especificada e também afeta o idioma usado para os e-mails enviados aos usuários. |
callbackUrl | string | O URL com o qual o servidor Xsolla Login funciona se o login ou o cadastro for bem-sucedido. |
emailTemplate | string | O nome do projeto pelo qual os e-mails são enviados aos usuários. |
payload | string | Dados adicionais que podem ser passados em um código. Esses dados são adicionados ao JWT de usuário após o login bem-sucedido. |
with_logout | boolean | Se os tokens anteriores devem ser revogados durante um novo login. false por padrão. |
clientId | string | ID do aplicativo cliente. Passado se a autenticação baseada no protocolo OAuth 2.0 for usada no aplicativo. |
scope | string | Informações adicionais sobre um usuário solicitadas pelo aplicativo. Passado se a autenticação com base no protocolo OAuth 2.0 for usada no aplicativo. Valores possíveis:
|
estado | string | Uma verificação de usuário adicional para evitar ataques CSRF, por exemplo. Deve ter mais de 8 caracteres. |
redirectUrl | string | O URL do usuário é redirecionado para após a confirmação da conta, login ou confirmação da redefinição de senha. |
disableConfirmByLink | boolean | Se a confirmação de autenticação sem senha por um link no e-mail quando os usuários fazem login sem uma senha por e-mail ou telefone deve ser desativada ou não. false por padrão. |
is_oauth2 | boolean | Se a autenticação baseada em protocolo OAuth 2.0 para usuários deve ser usada ou não. false por padrão. |
Chamadas de API
Você pode usar as seguintes chamadas do Login Widget SDK API sem um widget de Login:
- Cadastro de usuário por senha
- Login com senha
- Conformação de conta
- Autenticação sem senha
- Solicitação de campos adicionais sem senha
- Redefinição de senha
- Login único
Cadastro de usuário por senha
Chamada | Descrição | Parâmetros |
---|---|---|
api.signup(userInfo); | Cadastra um novo usuário. Os dados sobre o usuário são passados no objeto userInfo durante o cadastro. O token do usuário cadastrado é passado na resposta. |
|
Copy
let result
// Request
api.signup({
userInfo: {
email: 'email@address.com',
fields: {
nickname: 'Johny'
},
password: 'password123',
username: 'John'
}
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
Login com senha
Chamada | Descrição | Parâmetros |
---|---|---|
api.login(credenciais); | Autentica um usuário com uma senha. Os dados necessários sobre o usuário para o login do usuário são passados no objeto credentials . O token do usuário autenticado é passado na resposta. |
|
Copy
let result
// Request
api.login({
credentials: {
password: 'password123',
username: 'email@address.com'
}
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
// Response with additional fields
result === {
ask_fields: [{
confirmation_type: 'code' || 'link'
name: 'phone_number'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'phone'
validation: {} // Custom validation
}]
login_url: 'https://someurl.com?token=XXXXXXX',
token: 'sometoken'
}
Confirmação de conta
Chamada | Descrição | Parâmetros |
---|---|---|
api.resendEmail(nome de usuário); | Envia um e-mail de confirmação de conta adicional. Para confirmar a conta, o usuário deve clicar no link no e-mail. O endereço de e-mail do usuário é passado no objeto username . O código padrão 204 é retornado na resposta. |
|
Copy
let result
// Request
api.resendEmail({
username: 'email@address.com'
}).then((res) => {
res.code === 204;
})
Autenticação sem senha
Fluxo do usuário:- O usuário insere seu número de telefone ou endereço de e-mail. Dependendo das credenciais inseridas,
api.phoneGetCode
ouapi.emailGetCode
é chamado. - O servidor recebe os dados e envia um e-mail ou SMS com o código para o usuário. Se o parâmetro
disableConfirmByLink=true
, que desabilita a confirmação de login pelo link no e-mail, for passado ao inicializar o código, a chamadaapi.getConfirmCode
será usada para o redirecionamento automático do usuário após clicar no link. - A chamada
api.phoneGetCode
ouapi.emailGetCode
retorna o parâmetrooperation_id
usado para confirmar o número de telefone ou endereço de e-mail pela chamadaapi.loginWithPhoneCode
ouapi.loginWithEmailCode
. - Depois que o endereço de e-mail ou número de telefone for confirmado com êxito, o URL com o parâmetro
token
retornará. Ele é usado nas solicitações de dados adicionais sobre o usuário.
Chamada | Descrição | Parâmetros |
---|---|---|
api.phoneGetCode({ phone_number, link_url, isOauth2 }); | Envia um código de confirmação para o número de telefone. O parâmetro operation_id usado para confirmar o número de telefone é retornado na resposta. |
|
Copy
let result
// Request
api.phoneGetCode({
phone_number: '+somenumber',
link_url: 'https://someurl.com',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
operation_id: '2334j255fdf13d515fgd1'
}
Chamada | Descrição | Parâmetros |
---|---|---|
api.phoneGetCode({ phone_number, link_url, isOauth2 }); | Envia um código de confirmação para o endereço de e-mail. O parâmetro operation_id usado para confirmar o endereço de e-mail é retornado na resposta. |
|
Copy
let result
// Request
api.emailGetCode({
email: 'email@address.com',
link_url: 'https://someurl.com',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
operation_id: '2334j255fdf13d515fgd1'
}
Chamada | Descrição | Parâmetros |
---|---|---|
api.getConfirmCode({ cancelToken, login, operation_id }); | Obtém um código de confirmação para o redirecionamento automático de um usuário depois que ele clica no link. |
|
Copy
let result
// Request
const axiosCancelToken = Axios.CancelToken.source();
api.getConfirmCode({
cancelToken: axiosCancelToken,
login: '+somenumber' || 'email@address.com',
operation_id: '334j255fdf13d515fgd1'
}).then((res) => {
result = res;
})
// Response
result === {
code: 'string'
}
// If the waiting time has elapsed, returns:
result === {
error: {
code: '010-050',
description: 'Deadline exceeded.'
}
}
// If you no longer need to wait for verification through the link you can close the request waiting period:
axiosCancelToken.cancel();
Chamada | Descrição | Parâmetros |
---|---|---|
api.loginWithPhoneCode({ phone_number, code, operation_id, isOauth2 }); | Confirma o número de telefone. O URL com o parâmetro token retorna na resposta. Ele é usado nas solicitações de dados adicionais sobre o usuário. |
|
Copy
let result
// Request
api.loginWithPhoneCode({
phone_number: 'email@address.com',
code: '3423',
operation_id: '334j255fdf13d515fgd1',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
// Response with additional fields
result === {
ask_fields: [{
confirmation_type: 'code' || 'link'
name: 'email'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'email'
validation: {} // Custom validation
}]
login_url: 'https://someurl.com?token=XXXXXXX',
token: 'sometoken'
}
Chamada | Descrição | Parâmetros |
---|---|---|
api.loginWithEmailCode({ email, code, operation_id, isOauth2 }); | Confirma o endereço de e-mail. O URL com o parâmetro token retorna na resposta. Ele é usado nas solicitações de dados adicionais sobre o usuário. |
|
Copy
let result
// Request
api.loginWithEmailCode({
email: 'email@address.com',
code: '3423',
operation_id: '334j255fdf13d515fgd1',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
// Response with additional fields
result === {
ask_fields: [{
confirmation_type: 'code' || 'link'
name: 'phone_number'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'phone'
validation: {} // Custom validation
}]
login_url: 'https://someurl.com?token=XXXXXXX',
token: 'sometoken'
}
Solicitações de campos adicionais sem senha
Fluxo de usuário:- Após a autenticação bem-sucedida de um usuário, a chamada
api.loginWithEmailCode
ouapi.loginWithPhoneCode
retorna uma matriz de campos que você pode exibir em um aplicativo em um formulário separado e, adicionalmente, coletar o número de telefone e o endereço de email do usuário. Você também pode obter a lista de campos executando uma chamadaapi.getAskFields
. - O usuário insere um número de telefone ou endereço de e-mail. O
api.ask
é executado. - O servidor recebe os dados e envia um código de confirmação para um número de telefone ou endereço de e-mail. Se o parâmetro
disableConfirmByLink=true
, que desabilita a confirmação de login pelo link no e-mail, for passado ao inicializar o código, a chamadaapi.getConfirmCode
será usada para o redirecionamento automático do usuário após clicar no link. - A chamada
api.ask
retorna o parâmetrooperation_id
usado para confirmar o número de telefone ou endereço de e-mail pela chamadaapi.loginWithPhoneCode
ouapi.loginWithEmailCode
. - O URL usado para um redirecionamento de um usuário autenticado é retornado após a confirmação bem-sucedida dos dados.
Chamada | Descrição | Parâmetros |
---|---|---|
api.getAskFields(token); | Obtém a lista de campos para uma solicitação adicional. |
|
Copy
let result
// Request
api.getAskFields({
token: 'sometoken'
}).then((res) => {
result = res;
})
// Response
result === [
{
confirmation_type: 'code' || 'link'
name: 'phone_number' || 'email'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'phone' || 'email'
validation: {} // Custom validation
}
]
Chamada | Descrição | Parâmetros |
---|---|---|
api.ask({ fields, token, link_url }); | Envia dados adicionais sobre o usuário — um número de telefone ou endereço de e-mail. O parâmetro operation_id usado para confirmar o número de telefone ou endereço de e-mail especificado é retornado na resposta. Se a confirmação não for necessária, o URL com o parâmetro token usado para um redirecionamento de um usuário autenticado será retornado na resposta. |
|
Copy
let result
// Request
api.ask({
fields: {
phone_number: '+somenumber'
},
link_url: 'https://someurl.com',
token: 'sometoken'
}).then((res) => {
result = res;
})
// Response
result === {
error: {
code: '003-014'
description: 'Confirm phone number.'
details: { operation_id: 'BPaBScLM44GesoOYSxT5I8QfgIrTSURd' }
}
}
// Response without confirmation
result === {
redirect_url: '<login_url>?token=<token>'
}
Exemplo de envio de um endereço de e-mail:
Copy
let result
// request
api.ask({
fields: {
email: 'email@address.com'
},
link_url: 'https://someurl.com',
token: 'sometoken'
}).then((res) => {
result = res;
})
// Response
result === {
error: {
code: '003-011'
description: 'Confirm email.'
details: { operation_id: 'BPaBScLM44GesoOYSxT5I8QfgIrTSURd' }
}
}
// Response without confirmation
result === {
redirect_url: '<login_url>?token=<token>'
}
Chamada | Descrição | Parâmetros |
---|---|---|
api.getConfirmCode({ cancelToken, login, operation_id }); | Obtém o código de confirmação para um redirecionamento automático de um usuário depois de clicar no link. |
|
Copy
let result
// Request
const axiosCancelToken = Axios.CancelToken.source();
api.getConfirmCode({
cancelToken: axiosCancelToken,
login: '+somenumber' || 'email@address.com',
operation_id: '334j255fdf13d515fgd1'
}).then((res) => {
result = res;
})
// Response
result === {
code: 'string'
}
// If the waiting time has elapsed, returns:
result === {
error: {
code: '010-050',
description: 'Deadline exceeded.'
}
}
// If you no longer need to wait for verification through the link you can close the request waiting period:
axiosCancelToken.cancel();
Chamada | Descrição | Parâmetros |
---|---|---|
api.loginWithPhoneCode({ phone_number, code, operation_id, isOauth2 }); | Confirma o número de telefone. O URL com o parâmetro token retorna na resposta. Ele é usado nas solicitações de dados adicionais sobre o usuário. |
|
Copy
let result
// Request
api.loginWithPhoneCode({
phone_number: 'email@address.com',
code: '3423',
operation_id: '334j255fdf13d515fgd1',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
// Response with additional fields
result === {
ask_fields: [{
confirmation_type: 'code' || 'link'
name: 'email'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'email'
validation: {} // Custom validation
}]
login_url: 'https://someurl.com?token=XXXXXXX',
token: 'sometoken'
}
Chamada | Descrição | Parâmetros |
---|---|---|
api.loginWithEmailCode({ email, code, operation_id, isOauth2 }); | Confirma o endereço de e-mail. O URL com o parâmetro token retorna na resposta. Ele é usado nas solicitações de dados adicionais sobre o usuário. |
|
Copy
let result
// Request
api.loginWithEmailCode({
email: 'email@address.com',
code: '3423',
operation_id: '334j255fdf13d515fgd1',
isOauth2: true
}).then((res) => {
result = res;
})
// Response
result === {
login_url: 'https://someurl.com?token=XXXXXXX'
}
// Response with additional fields
result === {
ask_fields: [{
confirmation_type: 'code' || 'link'
name: 'phone_number'
required: false
step: 0 // Displays the position of the field in the data retrieval queue.
type: 'phone'
validation: {} // Custom validation
}]
login_url: 'https://someurl.com?token=XXXXXXX',
token: 'sometoken'
}
Redefinição de senha
Fluxo de usuário:- O aplicativo abre o formulário onde o usuário insere seu endereço de e-mail ou nome de usuário. A chamada
api.reset
é executada. - O servidor envia um e-mail de confirmação para o usuário.
- O usuário clica no link no e-mail e abre um formulário para uma nova senha.
- O usuário insere uma nova senha. A chamada
api.set
é executada.
Chamada | Descrição | Parâmetros |
---|---|---|
api.reset(nome de usuário); | Redefine a senha e confirma a ação. Para confirmar uma redefinição de senha, o usuário deve clicar no link no e-mail. O nome de usuário ou endereço de e-mail do usuário é passado no objeto username . O código 204 é retornado na resposta. |
|
Copy
let result
// Request
api.reset({
username: 'John'
}).then((res) => {
res.code === 204;
})
Chamada | Descrição | Parâmetros |
---|---|---|
api.set({ new_password, reset_code, user_id }); | Define a nova senha e confirma a ação. Para confirmar uma nova senha, o usuário deve clicar no link no e-mail. O código 204 é retornado na resposta. |
|
Copy
let result
// Request
api.set({
new_password: 'newpass',
reset_code: '3423',
user_id: '324324234'
}).then((res) => {
res.code === 204;
})
Acesso Único
Observação
Consulte as instruções sobre Single Sign-On para obter informações detalhadas.
Parâmetro | Tipo | Descrição |
---|---|---|
api.checkUserAuthSSO(); | Verifica se um usuário está autorizado por meio do Single Sign-On. Se for bem-sucedido, retorna um code único. |
Copy
let result
// Request
api
.checkUserAuthSSO()
.then(res => {
result === res;
});
result === {
code: "examplecode"
}
Chamada | Descrição | Parâmetros |
---|---|---|
api.userAuthSSOWithRedirect(loginUrl); | Verifica se um usuário foi autorizado via Single Sign-On. Se for bem-sucedido, um usuário será redirecionado para o URL — loginUrl gerado, incluindo um código de autorização. |
|
Copy
// Request
api
.userAuthSSOWithRedirect(
loginUrl: 'some-redirect-url.com'
)
.then(res => {
res.code === 302;
});
Chamada | Descrição | Parâmetros |
---|---|---|
api.logout(token, sessão); | Efetua o logout de um usuário no sistema e exclui uma sessão de usuário de acordo com o parâmetro session . |
|
Copy
// Request
api
.logout(
token: 'exampleToken',
session: 'sso' | 'all'
)
.then(res => {
res.code === 204;
});
Parâmetro | Tipo | Descrição |
---|---|---|
api.clearSSO(); | Remove os arquivos cookie do Single Sign-on do dispositivo atual do usuário. O código 204 é retornado na resposta se a chamada for bem-sucedida. |
Copy
// Request
api
.clearSSO()
.then(() => {
// Success
});
Este artigo foi útil?
Obrigado pelo seu feedback!
Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.