Login / Protocolo OAuth 2.0
  Voltar aos Documentos

Login

Protocolo OAuth 2.0

Visão geral

O produto Login oferece suporte ao protocolo padrão OAuth 2.0 para cadastro e autenticação de usuários. O protocolo de autorização padrão OAuth 2.0 se concentra na facilidade de desenvolvimento de aplicativos cliente e permite que você renove tokens de acesso sem a participação do usuário. Informações detalhadas sobre o protocolo OAuth 2.0 estão disponíveis em seu site oficial. O JWT de usuário é usado como token de acesso.

A interação entre seu cliente OAuth 2.0 e o servidor Xsolla Login é ilustrada abaixo:

Para configurar o protocolo OAuth 2.0:

  1. Conecte o produto Login.
  2. Configure o armazenamento Xsolla, PlayFab ou Firebase.
  3. Conecte um cliente OAuth 2.0.

Conexão do cliente OAuth 2.0

  1. Abra seu projeto na Conta de Distribuidor e vá para a seção Login.
  2. Clique em Configure no painel de uma opção Login.
  3. Vá para o bloco Segurança e selecione a seção OAuth 2.0.
  1. Clique em Adicionar cliente OAuth 2.0.
  1. Na janela modal, especifique:
    • Nome do cliente.
    • URL(s) em que os usuários são redirecionados após a verificação da conta, autenticação bem-sucedida ou confirmação de redefinição de senha.
    • Tipo de autenticação: pública, confidencial ou de servidor.
Observação
Para obter informações sobre os tipos de autenticação (tipos de cliente), consulte The OAuth 2.0 Authorization Framework e Confidential and Public Applications. Os tipos de autenticação de servidor e confidencial usam um cliente confidencial, mas diferem em como eles concedem acesso ao aplicativo (consulte Application Grant Types para mais detalhes):
  • para autenticação de servidor: grant_type=client_credentials;
  • para autenticação confidencial e pública: grant_type=authorization_codeou grant_type=refresh_token.
Se você usar a integração por meio da Login API, os seguintes recursos devem ser levados em consideração ao escolher o tipo de autenticação:
  • O cliente confidencial requer o uso do client ID e secret key ao chamar o método Generate JWT para obter ou atualizar um token de acesso.
  • O cliente público requer o uso apenas do client ID.
  • A chamada do método JWT auth by username and password só está disponível para a autenticação pública.

  1. Clique em Conectar.

  1. Um ID de cliente e uma chave secreta necessários para configurar a autenticação OAuth 2.0 em seu aplicativo serão gerados.

  1. Na janela de diálogo, copie a Client ID e a Secret key usando os botões de cópia.

Obtenção das configurações de cliente OAuth 2.0

Se você não copiou o ID do cliente e a chave secreta ao conectar o cliente OAuth 2.0, será necessário fazer o seguinte para acessar esses dados:

  1. Abra seu projeto na Conta de Distribuidor e vá para a seção Login.
  2. Clique em Configure no painel de uma opção Login.
  3. Vá para o bloco Security e selecione a seção OAuth 2.0.
  4. Na linha do cliente OAuth 2.0 necessário:
    • Copie os conteúdos do campo Client ID.
    • Clique em Client key para copiar a chave secreta.

O ID do cliente e a chave secreta correspondem aos parâmetros client_id e client_secret nos métodos Login API. Use esses valores ao trabalhar com clientes OAuth 2.0.

Observação
Quando você implementa a autenticação OAuth 2.0 em seu aplicativo, recomendamos que você use o código das bibliotecas de cliente. Isso ajudará você a proteger suas informações e os dados de seus usuários.

Integração no lado do aplicativo

As seguintes opções de integração estão disponíveis:

Ao trabalhar com a Login API e o widget de Login, o parâmetro scope é usado. Ele pode ter os seguintes valores:

  • offline para atualizar o token de acesso. Passe scope=offline para o método de cadastro ou autenticação.
  • email para solicitar o endereço de e-mail do usuário ao se autenticar por meio de uma rede social. Se você integrou o produto Login por meio da Login API, passe scope=email para o método de cadastro ou autenticação. Ao integrar através do widget de Login, configure a coleção de endereços de e-mail do usuário usando a instrução Collecting email addresses and phone numbers.

Integração via Login widget

Se você configurou a integração via widget do Login, adicione os parâmetros client_id, response_type, state e redirect_uri ao código de inicialização. No parâmetro redirect_uri, você deve especificar o valor que foi definido ao conectar o cliente OAuth 2.0 na Conta de Distribuidor. Você também pode adicionar o parâmetro scope.

Exemplo de solicitação:

Copy
Full screen
Small screen
<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>

Integração via Login API

Use os métodos API para o protocolo OAuth 2.0 para registrar e autenticar usuários. Se você já tiver integrado métodos para o padrão JWT, substitua-os por chamadas de método OAuth 2.0.

Ao chamar métodos de autenticação, troque o parâmetro code recebido por um token de acesso.

Integração via SDKs da Xsolla

Os SDKs da Xsolla oferecem suporte à autenticação com base no protocolo OAuth 2.0. Para configurar o cliente OAuth 2.0, escolha o engine de jogo ou plataforma e siga as instruções:

Obtenção do token de acesso

Para obter um token de acesso de usuário, use o método Generate JWT com os seguintes valores de parâmetro:

A resposta do método API retornará os seguintes tokens:

  • access_token — um token de acesso. O período de validade padrão é de 1 hora.
  • refresh_token — um token de atualização. O período de validade não é limitado.

Exemplo de solicitação:

Copy
Full screen
Small screen

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

Atualização do token de acesso

Quando o token de acesso expirar, use o método Generate JWT para atualizá-lo com o parâmetro grant_type igual a refresh_token e o último valor do token de atualização (refresh_token) recebido.

A resposta do método da API retornará um novo par de tokens: o token de acesso access_token e o token de atualização refresh_token, que podem ser atualizados novamente.

Exemplo de solicitação:

Copy
Full screen
Small screen

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
Observação
O produto Login oferece suporte a um máximo de cinco sessões de usuário simultâneas por padrão. A cada nova autenticação de usuário, o par de token access_token e refresh_token recebido por esse usuário antes dos últimos cinco pares de token se torna inválido. Para alterar o limite do número de sessões de usuário simultâneas, entre em contato com o Gerente de Sucesso do Cliente ou envie um e-mail para csm@xsolla.com.
Este artigo foi útil?
Obrigado!
Podemos melhorar alguma coisa? Mensagem
Que pena ouvir isso
Explique porque este artigo não foi útil para você. Mensagem
Obrigado pelo seu feedback!
Avaliaremos sua mensagem e a usaremos para melhorar sua experiência.
Última atualização: 18 de Setembro de 2024

Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.

Relatar um problema
Nós sempre avaliamos nossos conteúdos. Seu feedback nos ajuda a melhorá-los.
Forneça um e-mail para que possamos responder
Obrigado pelo seu feedback!