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:
- Conecte o produto Login.
- Configure o armazenamento Xsolla, PlayFab ou Firebase.
- Conecte um cliente OAuth 2.0.
Conexão do cliente OAuth 2.0
- Abra seu projeto na Conta de Distribuidor e vá para a seção Login.
- Clique em Configure no painel de uma opção Login.
- Vá para o bloco Segurança e selecione a seção OAuth 2.0.
- Clique em Adicionar cliente OAuth 2.0.
- 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.
- para autenticação de servidor:
grant_type=client_credentials
; - para autenticação confidencial e pública:
grant_type=authorization_code
ougrant_type=refresh_token
.
- 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.
- Clique em Conectar.
- Um ID de cliente e uma chave secreta necessários para configurar a autenticação OAuth 2.0 em seu aplicativo serão gerados.
- 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:
- Abra seu projeto na Conta de Distribuidor e vá para a seção Login.
- Clique em Configure no painel de uma opção Login.
- Vá para o bloco Security e selecione a seção OAuth 2.0.
- 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.
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. Passescope=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, passescope=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:
- html
<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:
authorization_code
para o parâmetrogrant_type
;offline
para o parâmetroscope
(necessário para a renovação subsequente do token de acesso);client_id
— valor de configuração do cliente OAuth 2.0;client_secret
— valor de configuração do cliente OAuth 2.0 (não necessário para o cliente OAuth 2.0 público);redirect_uri
— o valor que foi definido ao conectar o cliente OAuth 2.0 na Conta de Distribuidor;code
recebido após autenticação ou cadastro bem-sucedido do usuário no aplicativo.
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:
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:
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
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.Encontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.