Como fazer login de usuários com o Facebook
Neste documento, mostramos como usar o Identity Platform para fazer login de usuários com o Facebook.
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 Facebook como um provedor
Para configurar o Facebook como um provedor de identidade:
Acesse a página Provedores de identidade no console do Google Cloud.
Clique em Adicionar um provedor.
Selecione Facebook na lista.
Insira o ID e o secret do app do Facebook. Se ainda não tem um ID e um segredo, você pode obter um na Facebook for Developers.
Configure o URI listado em Configure Facebook como um OAuth válido. URI de redirecionamento do seu app do Facebook. Se você configurou um domínio personalizado no Identity Platform, Atualize o URI de redirecionamento na configuração do app do Facebook para usar o domínio personalizado. do domínio padrão. Por exemplo, mude
https://myproject.firebaseapp.com/__/auth/handler
parahttps://auth.myownpersonaldomain.com/__/auth/handler
.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 Facebook:
JavaScript
var provider = new firebase.auth.FacebookAuthProvider();
Opcional: adicione escopos do OAuth. Os escopos especificam quais dados você está solicitando do Facebook. Dados mais confidenciais podem exigir escopos específicos. Consulte a documentação do provedor para determinar quais escopos seu app precisa.
JavaScript
provider.addScope('user_birthday');
Opcional: localize o fluxo de autenticação. É possível especificar uma linguagem ou usar a linguagem padrão do dispositivo:
JavaScript
firebase.auth().languageCode = 'it'; // To apply the default browser preference instead of explicitly setting it. // firebase.auth().useDeviceLanguage();
Opcional: especifique outros parâmetros de OAuth personalizados. Eles são específicos do Facebook e geralmente são usados para personalizar a experiência de autenticação. Não é possível transmitir parâmetros reservados pelo OAuth ou pelo Identity Platform.
JavaScript
provider.setCustomParameters({ 'display': 'popup' });
Use o objeto do provedor do Facebook para fazer login do usuário. Você pode abrir uma janela pop-up ou redirecionar a página atual. O redirecionamento é mais fácil para usuários de dispositivos móveis.
Para mostrar um pop-up, chame
signInWithPopup()
:JavaScript
firebase .auth() .signInWithPopup(provider) .then((result) => { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // The signed-in user info. var user = result.user; // This gives you a Facebook Access Token. You can use it to access the Facebook API. var accessToken = credential.accessToken; // ... }) .catch((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()
.Siga as práticas recomendadas ao usar
signInWithRedirect
,linkWithRedirect
oureauthenticateWithRedirect
.JavaScript
firebase.auth().signInWithRedirect(provider);
Em seguida, recupere o token do Facebook chamando
getRedirectResult()
quando a página for carregada:JavaScript
firebase.auth() .getRedirectResult() .then((result) => { if (result.credential) { /** @type {firebase.auth.OAuthCredential} */ var credential = result.credential; // This gives you a Facebook Access Token. You can use it to access the Facebook API. var token = credential.accessToken; // ... } // The signed-in user info. var user = result.user; }).catch((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 Facebook. Exemplo:
REST
curl "https://graph.facebook.com/me?fields=id,name&access_token=[TOKEN]"
Como fazer login manual dos usuários
Se você não quer usar o SDK do cliente, também pode processar o login fluir manualmente.
Esse método de login também é compatível com o login do Facebook para jogos, um IdP. O Identity Platform não é compatível com a implementação manual do login do Facebook para jogos. Ele só aceita os tokens para trocar credenciais do Identity Platform.
Integre a autenticação do Facebook ou do Facebook para jogos à sua do app seguindo as etapas na documentação do desenvolvedor:
Faça o login do usuário com o Facebook ou o login do Facebook para jogos usando a fluxo que você implementou na etapa anterior.
Troque o token que você recebeu do Facebook ou do Login do Facebook para jogos por uma credencial do Identity Platform:
JavaScript
var credential = firebase.auth.FacebookAuthProvider.credential(accessToken);
Use a credencial para fazer login do usuário com o Identity Platform:
JavaScript
// Sign in with the credential from the user. firebase.auth() .signInWithCredential(credential) .then((result) => { // Signed in // ... }) .catch((error) => { // Handle Errors here. const errorCode = error.code; const errorMessage = error.message; // The email of the user's account used. const email = error.email; // ... });
A seguir
- Saiba mais sobre os usuários do Identity Platform.
- Faça login dos usuários com outros provedores de identidade.