Armazenamento Firebase
Se você usa o armazenamento do Firebase, você tem acesso a:
- cadastro de usuários
- autenticação via endereço de e-mail e senha de usuário
- autenticação via redes sociais
- bloqueio de usuários
Fluxo de interação
Você pode usar o widget de Login ou seu aplicativo 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, OAuth 2.0 e Password.
- O servidor Xsolla Login envia solicitações para o Firebase.
- O servidor Xsolla Login processa uma resposta do Firebase e retorna resultados para o cliente.
- O cliente processa a resposta.
Fluxo de cadastro de usuários
- O cliente envia a solicitação
Register new user para o servidor Xsolla Login. - O servidor Xsolla Login envia uma solicitação de registro para o Firebase.
- Os dados do usuário são gravados no banco de dados Xsolla.
- O status do endereço de e-mail do usuário é verificado:
- Se o usuário não tiver verificado anteriormente seu endereço de e-mail no Firebase, ele receberá um e-mail de confirmação desse sistema. Assim que o usuário confirma seu endereço de e-mail, ele é automaticamente confirmado no servidor Xsolla Login.
- Se o endereço de e-mail do usuário tiver sido verificado no Firebase, imediatamente após o registro, o usuário será autorizado e redirecionado para o URL de retorno de chamada especificado ao criar o projeto Login.
Autenticação via endereço de e-mail e senha do usuário
Há dois tipos de autenticação via endereço de e-mail e senha do usuário: autenticação baseada no padrão JWT e autenticação baseada no protocolo OAuth 2.0.
- Se não houver nenhuma entrada para o usuário no banco de dados Xsolla, será criada uma entrada.
- O servidor Xsolla Login solicita os seguintes dados do usuário do Firebase e os atualiza no banco de dados Xsolla: status de confirmação de e-mail, avatar e nome de exibição (se houver).
Fluxo de autenticação baseado no padrão JWT
- O cliente envia a solicitação Auth by username and password para o servidor Xsolla Login.
- O servidor Xsolla Login envia a solicitação de autenticação para o Firebase.
- O servidor Xsolla Login gera um JWT de usuário, enquanto:
- O valor localId da resposta à solicitação do Firebase é gravado na declaração
external_account_id
. - O valor do Firebase ID token da resposta à solicitação do Firebase é gravado na declaração
firebase_id_token
. - O valor Firebase refresh token da resposta à solicitação do Firebase é gravado na declaração
firebase_refresh_token
.
- O valor localId da resposta à solicitação do Firebase é gravado na declaração
- O usuário é redirecionado para
login_url
com um parâmetro de consultatoken
. O JWT do usuário é gravado no parâmetrotoken
.
Fluxo de autenticação baseado no protocolo OAuth 2.0
- O cliente envia a solicitação Auth by username and password com o parâmetro
redirect_uri
para o servidor Xsolla Login. - O servidor Xsolla Login envia a solicitação de autenticação para o Firebase.
- O servidor Xsolla Login retorna junto com
code
no parâmetro de consulta e o parâmetroredirect_uri
passado. - O usuário é redirecionado para
redirect_uri
com o parâmetro de consultacode
. - O cliente envia a solicitação Generate JWT para o servidor Xsolla Login para trocar o
code
recebido por um JWT do usuário. - O servidor Xsolla Login gera um JWT de usuário, enquanto:
- O valor localId da resposta à solicitação do Firebase é gravado na declaração
external_account_id
. - O valor do Firebase ID token da resposta à solicitação do Firebase é gravado na declaração
firebase_id_token
. - O valor Firebase refresh token da resposta à solicitação do Firebase é gravado na declaração
firebase_refresh_token
.
- O valor localId da resposta à solicitação do Firebase é gravado na declaração
Autenticação via redes sociais
Somente a autenticação via Google e Facebook é suportada. Dois cenários de autenticação estão disponíveis: autenticação baseada no padrão JWT e autenticação baseada no protocolo OAuth 2.0.
Fluxo de autenticação baseado no padrão JWT
- O usuário inicia a autorização clicando no botão do widget ou através do método Login API.
- O usuário é redirecionado para a página de login da rede social onde insere suas credenciais.
- A rede social retorna informações sobre o usuário junto com seu token de acesso ao servidor Xsolla Login.
- O servidor Xsolla Login envia uma solicitação de autenticação ao Firebase com esse token por meio do método Sign in with OAuth credential.
- O servidor Xsolla Login gera um JWT de usuário, enquanto:
- O valor localId da resposta à solicitação do Firebase é gravado na declaração
external_account_id
. - O valor Firebase ID token da resposta à solicitação do Firebase é gravado na declaração
firebase_id_token
. - O valor do Firebase refresh token da resposta à solicitação do Firebase é gravado na declaração
firebase_refresh_token
.
- O valor localId da resposta à solicitação do Firebase é gravado na declaração
- O usuário é redirecionado para
login_url
com um parâmetro de consultatoken
. O JWT do usuário é gravado no parâmetrotoken
.
Fluxo de autenticação baseado no protocolo OAuth 2.0
- O usuário inicia a autorização clicando no botão do widget ou através do método Login API.
- O usuário é redirecionado para a página de login da rede social onde insere suas credenciais.
- A rede social retorna informações sobre o usuário junto com seu token de acesso ao servidor Xsolla Login.
- O servidor Xsolla Login envia uma solicitação de autenticação ao Firebase com esse token por meio do método Sign in with OAuth credential.
- O servidor Xsolla Login retorna junto com
code
no parâmetro de consulta e o parâmetroredirect_uri
passado. - O usuário é redirecionado para
redirect_uri
com o parâmetro de consultacode
. - O cliente envia a solicitação Generate JWT para o servidor Xsolla Login para trocar o
code
recebido por um JWT de usuário. - O servidor de Xsolla Login gera o JWT do usuário, enquanto:
- O valor localId da resposta à solicitação do Firebase é gravado na declaração
external_account_id
. - O valor Firebase ID token da resposta à solicitação do Firebase é gravado na declaração
firebase_id_token
. - O valor Firebase refresh token da resposta à solicitação do Firebase é gravado na declaração
firebase_refresh_token
.
- O valor localId da resposta à solicitação do Firebase é gravado na declaração
Bloqueio de usuários
Você pode bloquear usuários por meio da Conta de Distribuidor. Os usuários bloqueados não podem ser autenticados. O bloqueio é gravado e armazenado apenas no lado Xsolla.
Continuar lendo
Links úteis
Como conectar o armazenamento do FirebaseEncontrou um erro de texto ou digitação? Selecione o texto e pressione Ctrl+Enter.