Neste documento, mostramos como usar o Identity Platform para fazer login de usuários com o Google.
Antes de começar
Neste tutorial, pressupomos que você já tenha ativado o Identity Platform e tenha um aplicativo da Web básico escrito usando HTML e JavaScript. Consulte o Guia de início rápido para saber como.
Como configurar o Google como um provedor
Para configurar o Google como um provedor de identidade:
Acesse a página Provedores do Identity Platform no Console do Cloud.
Clique em Adicionar um provedor.
Selecione Google na lista.
Insira o ID do cliente da Web e o Secret da Web do Google. Se você ainda não tiver um ID e um secret, poderá conseguir na página da API e dos serviços.
Configure o URI listado em Configurar Google como um URI de redirecionamento válido do OAuth para seu aplicativo do Google.
Registre os domínios do seu aplicativo clicando em Adicionar domínio em Domínios autorizados. Para fins de desenvolvimento,
localhost
já está ativado por padrão.Em Configurar seu aplicativo, clique em Detalhes de configuração. Copie o snippet no código do aplicativo para inicializar o SDK do cliente do Identity Platform.
Clique em Save.
Como fazer login de usuários com o SDK do cliente
Crie uma instância do objeto do provedor do Google:
JavaScript
var provider = new firebase.auth.GoogleAuthProvider();
Opcional: adicione escopos do OAuth. Os escopos especificam quais dados você está solicitando ao Google. Dados mais confidenciais podem exigir escopos específicos. Consulte a documentação do provedor para determinar quais escopos são necessários para seu aplicativo.
JavaScript
provider.addScope('https://www.googleapis.com/auth/contacts.readonly');
Opcional: localize o fluxo de autenticação. É possível especificar uma linguagem ou usar a linguagem padrão do dispositivo:
JavaScript
firebase.auth().languageCode = 'fr_FR'; // To apply the default browser preference instead of // explicitly setting it. // firebase.auth().useDeviceLanguage();
Opcional: especifique parâmetros OAuth personalizados adicionais. Eles são específicos do Google e costumam ser usados para personalizar a experiência de autenticação.
JavaScript
provider.setCustomParameters({ 'login_hint': 'user@example.com' });
Não é possível transmitir parâmetros reservados pelo OAuth ou pelo Identity Platform.
Use o objeto do provedor do Google para fazer login do usuário. É possível abrir uma janela pop-up ou redirecionar a página atual. O redirecionamento é mais fácil para usuários em dispositivos móveis.
Para mostrar um pop-up, chame
signInWithPopup()
:JavaScript
firebase.auth().signInWithPopup(provider).then(function(result) { // This gives you a Google Access Token. You can use it to access the Google API. var token = result.credential.accessToken; // The signed-in user info. var user = result.user; // ... }).catch(function(error) { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
Para redirecionar a página, primeiro chame
signInWithRedirect()
:JavaScript
firebase.auth().signInWithRedirect(provider);
Em seguida, recupere o token do Google chamando
getRedirectResult()
quando sua página for carregada:JavaScript
firebase.auth().getRedirectResult().then(function(result) { if (result.credential) { // This gives you a Google Access Token. You can use it to access the Google API. var token = result.credential.accessToken; // ... } // The signed-in user info. var user = result.user; }).catch(function(error) { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
Quando você tiver um token de acesso, poderá usá-lo para chamar a API do Google. Exemplo:
REST
curl -H "Authorization: Bearer [TOKEN]" https://www.googleapis.com/oauth2/v2/userinfo
Como fazer login manual dos usuários
Se você não quiser usar o SDK do cliente, também poderá processar o fluxo de login manualmente:
Integre a autenticação do Google ao seu app seguindo as etapas na documentação do desenvolvedor.
Faça o login do usuário com o Google usando o fluxo implementado na etapa anterior.
Troque o token que o Google recebeu por uma credencial do Identity Platform:
firebase.auth.GoogleAuthProvider.credential(id_token);
Use a credencial para fazer login do usuário com o Identity Platform:
firebase.auth().signInWithCredential(credential).catch(function(error) { // Handle Errors here. var errorCode = error.code; var errorMessage = error.message; // The email of the user's account used. var email = error.email; // The firebase.auth.AuthCredential type that was used. var credential = error.credential; // ... });
A seguir
- Saiba mais sobre os usuários do Identity Platform.
- Faça login dos usuários com outros provedores de identidade.