Identità federata e accesso social

L'autenticazione social è un flusso di autenticazione in più fasi, che consente di far accedere un utente a un account o di collegarlo a uno esistente.

Sia le piattaforme native che il supporto Web creano una credenziale che può quindi essere passata ai metodi signInWithCredential o linkWithCredential . In alternativa, sulle piattaforme web, puoi attivare il processo di autenticazione tramite un popup o un reindirizzamento.

Google

La maggior parte della configurazione è già configurata quando si utilizza Google Sign-In con Firebase, tuttavia è necessario assicurarsi che la chiave SHA1 del computer sia stata configurata per l'utilizzo con Android. Puoi vedere come generare la chiave nella documentazione di autenticazione .

Assicurati che il provider di accesso "Google" sia abilitato nella console di Firebase .

Se il tuo utente accede con Google, dopo aver già registrato manualmente un account, il suo provider di autenticazione cambierà automaticamente in Google, a causa del concetto di provider affidabili di Firebase Authentication. Puoi saperne di più su questo qui .

iOS+ e Android

Sulle piattaforme native, è necessaria una libreria di terze parti per attivare il flusso di autenticazione.

Installa il plugin ufficiale google_sign_in .

Una volta installato, attiva il flusso di accesso e crea una nuova credenziale:

import 'package:google_sign_in/google_sign_in.dart';

Future<UserCredential> signInWithGoogle() async {
  // Trigger the authentication flow
  final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();

  // Obtain the auth details from the request
  final GoogleSignInAuthentication? googleAuth = await googleUser?.authentication;

  // Create a new credential
  final credential = GoogleAuthProvider.credential(
    accessToken: googleAuth?.accessToken,
    idToken: googleAuth?.idToken,
  );

  // Once signed in, return the UserCredential
  return await FirebaseAuth.instance.signInWithCredential(credential);
}

ragnatela

Sul Web, l'SDK Firebase fornisce supporto per la gestione automatica del flusso di autenticazione utilizzando il tuo progetto Firebase. Per esempio:

Crea un provider di autenticazione Google, fornendo qualsiasi ambito di autorizzazione aggiuntivo che desideri ottenere dall'utente:

GoogleAuthProvider googleProvider = GoogleAuthProvider();

googleProvider.addScope('https://www.googleapis.com/auth/contacts.readonly');
googleProvider.setCustomParameters({
  'login_hint': 'user@example.com'
});

Fornire le credenziali al metodo signInWithPopup . Ciò attiverà una nuova finestra che verrà visualizzata chiedendo all'utente di accedere al tuo progetto. In alternativa puoi utilizzare signInWithRedirect per mantenere il processo di autenticazione nella stessa finestra.

Future<UserCredential> signInWithGoogle() async {
  // Create a new provider
  GoogleAuthProvider googleProvider = GoogleAuthProvider();

  googleProvider.addScope('https://www.googleapis.com/auth/contacts.readonly');
  googleProvider.setCustomParameters({
    'login_hint': 'user@example.com'
  });

  // Once signed in, return the UserCredential
  return await FirebaseAuth.instance.signInWithPopup(googleProvider);

  // Or use signInWithRedirect
  // return await FirebaseAuth.instance.signInWithRedirect(googleProvider);
}

Giochi di Google Play

Puoi autenticare gli utenti nel tuo gioco Android utilizzando l'accesso a Play Giochi.

Androide

Segui le istruzioni per la configurazione di Google su Android, quindi configura i servizi Play Giochi con le informazioni dell'app Firebase .

Quanto segue attiverà il flusso di accesso, creerà una nuova credenziale e farà accedere l'utente:

final googleUser = await GoogleSignIn(
  signInOption: SignInOption.games,
).signIn();

final googleAuth = await googleUser?.authentication;

if (googleAuth != null) {
  // Create a new credential
  final credential = GoogleAuthProvider.credential(
    accessToken: googleAuth.accessToken,
    idToken: googleAuth.idToken,
  );

  // Once signed in, return the UserCredential
  await _auth.signInWithCredential(credential);
}

Facebook

Prima di iniziare, configura la tua Facebook Developer App e segui la procedura di configurazione per abilitare Facebook Login.

Assicurati che il provider di accesso "Facebook" sia abilitato nella console di Firebase . con l'ID dell'app di Facebook e il set segreto.

iOS+ e Android

Sulle piattaforme native, è necessaria una libreria di terze parti sia per installare l'SDK di Facebook sia per attivare il flusso di autenticazione.

Installa il plug-in flutter_facebook_auth .

Dovrai seguire i passaggi nella documentazione del plug-in per assicurarti che entrambi gli SDK di Facebook per Android e iOS siano stati inizializzati correttamente. Una volta completato, attiva il flusso di accesso, crea una credenziale Facebook e accedi all'utente:

import 'package:flutter_facebook_auth/flutter_facebook_auth.dart';

Future<UserCredential> signInWithFacebook() async {
  // Trigger the sign-in flow
  final LoginResult loginResult = await FacebookAuth.instance.login();

  // Create a credential from the access token
  final OAuthCredential facebookAuthCredential = FacebookAuthProvider.credential(loginResult.accessToken.token);

  // Once signed in, return the UserCredential
  return FirebaseAuth.instance.signInWithCredential(facebookAuthCredential);
}

ragnatela

Sul Web, l'SDK Firebase fornisce supporto per la gestione automatica del flusso di autenticazione utilizzando i dettagli dell'applicazione Facebook forniti nella console Firebase. Per esempio:

Crea un provider di Facebook, fornendo qualsiasi ambito di autorizzazione aggiuntivo che desideri ottenere dall'utente.

Assicurati che l'URI di reindirizzamento OAuth dalla console Firebase sia aggiunto come URI di reindirizzamento OAuth valido nella tua app Facebook.

FacebookAuthProvider facebookProvider = FacebookAuthProvider();

facebookProvider.addScope('email');
facebookProvider.setCustomParameters({
  'display': 'popup',
});

Fornire le credenziali al metodo signInWithPopup . Verrà visualizzata una nuova finestra che richiede all'utente di accedere alla tua applicazione Facebook:

Future<UserCredential> signInWithFacebook() async {
  // Create a new provider
  FacebookAuthProvider facebookProvider = FacebookAuthProvider();

  facebookProvider.addScope('email');
  facebookProvider.setCustomParameters({
    'display': 'popup',
  });

  // Once signed in, return the UserCredential
  return await FirebaseAuth.instance.signInWithPopup(facebookProvider);

  // Or use signInWithRedirect
  // return await FirebaseAuth.instance.signInWithRedirect(facebookProvider);
}

Mela

iOS+

Prima di iniziare, configura Accedi con Apple e abilita Apple come provider di accesso .

Successivamente, assicurati che le tue app Runner dispongano della funzionalità "Accedi con Apple".

Androide

Prima di iniziare, configura Accedi con Apple e abilita Apple come provider di accesso .

ragnatela

Prima di iniziare, configura Accedi con Apple e abilita Apple come provider di accesso .

import 'package:firebase_auth/firebase_auth.dart';

Future<UserCredential> signInWithApple() async {
  final appleProvider = AppleAuthProvider();
  if (kIsWeb) {
    await FirebaseAuth.instance.signInWithPopup(appleProvider);
  } else {
    await FirebaseAuth.instance.signInWithProvider(appleProvider);
  }
}

Microsoft

iOS+

Prima di iniziare , configura Microsoft Login per iOS e aggiungi gli schemi URL personalizzati al tuo Runner (passaggio 1) .

Androide

Prima di iniziare , configura Microsoft Login per Android .

Non dimenticare di aggiungere l'impronta digitale SHA-1 della tua app.

ragnatela

Prima di iniziare configurare Microsoft Login per Web .

import 'package:firebase_auth/firebase_auth.dart';

Future<UserCredential> signInWithMicrosoft() async {
  final microsoftProvider = MicrosoftAuthProvider();
  if (kIsWeb) {
    await FirebaseAuth.instance.signInWithPopup(microsoftProvider);
  } else {
    await FirebaseAuth.instance.signInWithProvider(microsoftProvider);
  }
}

Cinguettio

Assicurati che il provider di accesso "Twitter" sia abilitato sulla console Firebase con una chiave API e un segreto API impostati. Assicurati che il tuo URI di reindirizzamento Firebase OAuth (ad es. my-app-12345.firebaseapp.com/__/auth/handler) sia impostato come URL di callback di autorizzazione nella pagina delle impostazioni dell'app nella configurazione dell'app Twitter .

Potrebbe anche essere necessario richiedere un accesso API elevato a seconda della tua app .

iOS+

Devi configurare il tuo schema URL personalizzato come descritto nel passaggio 1 della guida iOS .

Androide

Se non hai ancora specificato l'impronta digitale SHA-1 della tua app, fallo dalla pagina Impostazioni della console Firebase. Fare riferimento a Autenticazione del client per i dettagli su come ottenere l'impronta digitale SHA-1 dell'app.

ragnatela

Funziona fuori dagli schemi.

import 'package:firebase_auth/firebase_auth.dart';

Future<void> _signInWithTwitter() async {
  TwitterAuthProvider twitterProvider = TwitterAuthProvider();

  if (kIsWeb) {
    await FirebaseAuth.instance.signInWithPopup(twitterProvider);
  } else {
    await FirebaseAuth.instance.signInWithProvider(twitterProvider);
  }
}

Git Hub

Assicurati di aver configurato un'app OAuth dalle Impostazioni sviluppatore GitHub e che il provider di accesso "GitHub" sia abilitato sulla console Firebase con l'ID client e il segreto impostati, con l'URL di richiamata impostato nell'app GitHub.

iOS+ e Android

Per le piattaforme native, devi aggiungere google-services.json e GoogleService-Info.plist .

Per iOS, aggiungi lo schema URL personalizzato come descritto nel passaggio 1 della guida iOS .

Future<UserCredential> signInWithGitHub() async {
  // Create a new provider
  GithubAuthProvider githubProvider = GithubAuthProvider();

  return await FirebaseAuth.instance.signInWithProvider(githubProvider);
}

ragnatela

Sul Web, GitHub SDK fornisce supporto per la gestione automatica del flusso di autenticazione utilizzando i dettagli dell'applicazione GitHub forniti nella console Firebase. Assicurati che l'URL di richiamata nella console Firebase sia aggiunto come URL di richiamata nella tua applicazione GitHub sulla console per sviluppatori.

Per esempio:

Crea un provider GitHub e fornisci le credenziali al metodo signInWithPopup . Verrà visualizzata una nuova finestra che richiede all'utente di accedere all'applicazione GitHub:

Future<UserCredential> signInWithGitHub() async {
  // Create a new provider
  GithubAuthProvider githubProvider = GithubAuthProvider();

  // Once signed in, return the UserCredential
  return await FirebaseAuth.instance.signInWithPopup(githubProvider);

  // Or use signInWithRedirect
  // return await FirebaseAuth.instance.signInWithRedirect(githubProvider);
}

Yahoo

Assicurati che il provider di accesso "Yahoo" sia abilitato sulla console di Firebase con una chiave API e un segreto API impostati. Assicurati inoltre che l'URI di reindirizzamento Firebase OAuth (ad es. my-app-12345.firebaseapp.com/__/auth/handler) sia impostato come URI di reindirizzamento nella configurazione Yahoo Developer Network della tua app.

iOS+

Prima di iniziare, configura Yahoo Login per iOS e aggiungi gli schemi URL personalizzati al tuo Runner (passaggio 1) .

Androide

Prima di iniziare, configura Yahoo Login per Android .

Non dimenticare di aggiungere l'impronta digitale SHA-1 della tua app.

ragnatela

Funziona fuori dagli schemi.

import 'package:firebase_auth/firebase_auth.dart';

Future<UserCredential> signInWithYahoo() async {
  final yahooProvider = YahooAuthProvider();
  if (kIsWeb) {
    await _auth.signInWithPopup(yahooProvider);
  } else {
    await _auth.signInWithProvider(yahooProvider);
  }
}

Utilizzo del token di accesso OAuth

Utilizzando un AuthProvider, puoi recuperare il token di accesso associato al provider effettuando la seguente richiesta.

final appleProvider = AppleAuthProvider();

final user = await FirebaseAuth.instance.signInWithProvider(appleProvider);
final accessToken = user.credential?.accessToken;

// You can send requests with the `accessToken`

Collegamento di un provider di autenticazione

Se desideri collegare un provider a un utente corrente, puoi utilizzare il seguente metodo: ```dart await FirebaseAuth.instance.signInAnonymously();

appleProvider finale = AppleAuthProvider();

if (kIsWeb) { attendono FirebaseAuth.instance.currentUser?.linkWithPopup(appleProvider);

// Puoi anche utilizzare linkWithRedirect } else { await FirebaseAuth.instance.currentUser?.linkWithProvider(appleProvider); }

// Il tuo utente anonimo è ora aggiornato per poterti connettere con Accedi con Apple ```

Riautenticare con il provider

Lo stesso modello può essere utilizzato con reauthenticateWithProvider che può essere utilizzato per recuperare nuove credenziali per operazioni sensibili che richiedono un accesso recente.

final appleProvider = AppleAuthProvider();

if (kIsWeb) {
  await FirebaseAuth.instance.currentUser?.reauthenticateWithPopup(appleProvider);
  
  // Or you can reauthenticate with a redirection
  // await FirebaseAuth.instance.currentUser?.reauthenticateWithRedirect(appleProvider);
} else {
  await FirebaseAuth.instance.currentUser?.reauthenticateWithProvider(appleProvider);
}

// You can now perform sensitive operations
,

L'autenticazione social è un flusso di autenticazione in più fasi, che consente di far accedere un utente a un account o di collegarlo a uno esistente.

Sia le piattaforme native che il supporto Web creano una credenziale che può quindi essere passata ai metodi signInWithCredential o linkWithCredential . In alternativa, sulle piattaforme web, puoi attivare il processo di autenticazione tramite un popup o un reindirizzamento.

Google

La maggior parte della configurazione è già configurata quando si utilizza Google Sign-In con Firebase, tuttavia è necessario assicurarsi che la chiave SHA1 del computer sia stata configurata per l'utilizzo con Android. Puoi vedere come generare la chiave nella documentazione di autenticazione .

Assicurati che il provider di accesso "Google" sia abilitato nella console di Firebase .

Se il tuo utente accede con Google, dopo aver già registrato manualmente un account, il suo provider di autenticazione cambierà automaticamente in Google, a causa del concetto di provider affidabili di Firebase Authentication. Puoi saperne di più su questo qui .

iOS+ e Android

Sulle piattaforme native, è necessaria una libreria di terze parti per attivare il flusso di autenticazione.

Installa il plugin ufficiale google_sign_in .

Una volta installato, attiva il flusso di accesso e crea una nuova credenziale:

import 'package:google_sign_in/google_sign_in.dart';

Future<UserCredential> signInWithGoogle() async {
  // Trigger the authentication flow
  final GoogleSignInAccount? googleUser = await GoogleSignIn().signIn();

  // Obtain the auth details from the request
  final GoogleSignInAuthentication? googleAuth = await googleUser?.authentication;

  // Create a new credential
  final credential = GoogleAuthProvider.credential(
    accessToken: googleAuth?.accessToken,
    idToken: googleAuth?.idToken,
  );

  // Once signed in, return the UserCredential
  return await FirebaseAuth.instance.signInWithCredential(credential);
}

ragnatela

Sul Web, l'SDK Firebase fornisce supporto per la gestione automatica del flusso di autenticazione utilizzando il tuo progetto Firebase. Per esempio:

Crea un provider di autenticazione Google, fornendo qualsiasi ambito di autorizzazione aggiuntivo che desideri ottenere dall'utente:

GoogleAuthProvider googleProvider = GoogleAuthProvider();

googleProvider.addScope('https://www.googleapis.com/auth/contacts.readonly');
googleProvider.setCustomParameters({
  'login_hint': 'user@example.com'
});

Fornire le credenziali al metodo signInWithPopup . Ciò attiverà una nuova finestra che verrà visualizzata chiedendo all'utente di accedere al tuo progetto. In alternativa puoi utilizzare signInWithRedirect per mantenere il processo di autenticazione nella stessa finestra.

Future<UserCredential> signInWithGoogle() async {
  // Create a new provider
  GoogleAuthProvider googleProvider = GoogleAuthProvider();

  googleProvider.addScope('https://www.googleapis.com/auth/contacts.readonly');
  googleProvider.setCustomParameters({
    'login_hint': 'user@example.com'
  });

  // Once signed in, return the UserCredential
  return await FirebaseAuth.instance.signInWithPopup(googleProvider);

  // Or use signInWithRedirect
  // return await FirebaseAuth.instance.signInWithRedirect(googleProvider);
}

Giochi di Google Play

Puoi autenticare gli utenti nel tuo gioco Android utilizzando l'accesso a Play Giochi.

Androide

Segui le istruzioni per la configurazione di Google su Android, quindi configura i servizi Play Giochi con le informazioni dell'app Firebase .

Quanto segue attiverà il flusso di accesso, creerà una nuova credenziale e farà accedere l'utente:

final googleUser = await GoogleSignIn(
  signInOption: SignInOption.games,
).signIn();

final googleAuth = await googleUser?.authentication;

if (googleAuth != null) {
  // Create a new credential
  final credential = GoogleAuthProvider.credential(
    accessToken: googleAuth.accessToken,
    idToken: googleAuth.idToken,
  );

  // Once signed in, return the UserCredential
  await _auth.signInWithCredential(credential);
}

Facebook

Prima di iniziare, configura la tua Facebook Developer App e segui la procedura di configurazione per abilitare Facebook Login.

Assicurati che il provider di accesso "Facebook" sia abilitato nella console di Firebase . con l'ID dell'app di Facebook e il set segreto.

iOS+ e Android

Sulle piattaforme native, è necessaria una libreria di terze parti sia per installare l'SDK di Facebook sia per attivare il flusso di autenticazione.

Installa il plug-in flutter_facebook_auth .

Dovrai seguire i passaggi nella documentazione del plug-in per assicurarti che entrambi gli SDK di Facebook per Android e iOS siano stati inizializzati correttamente. Una volta completato, attiva il flusso di accesso, crea una credenziale Facebook e accedi all'utente:

import 'package:flutter_facebook_auth/flutter_facebook_auth.dart';

Future<UserCredential> signInWithFacebook() async {
  // Trigger the sign-in flow
  final LoginResult loginResult = await FacebookAuth.instance.login();

  // Create a credential from the access token
  final OAuthCredential facebookAuthCredential = FacebookAuthProvider.credential(loginResult.accessToken.token);

  // Once signed in, return the UserCredential
  return FirebaseAuth.instance.signInWithCredential(facebookAuthCredential);
}

ragnatela

Sul Web, l'SDK Firebase fornisce supporto per la gestione automatica del flusso di autenticazione utilizzando i dettagli dell'applicazione Facebook forniti nella console Firebase. Per esempio:

Crea un provider di Facebook, fornendo qualsiasi ambito di autorizzazione aggiuntivo che desideri ottenere dall'utente.

Assicurati che l'URI di reindirizzamento OAuth dalla console Firebase sia aggiunto come URI di reindirizzamento OAuth valido nella tua app Facebook.

FacebookAuthProvider facebookProvider = FacebookAuthProvider();

facebookProvider.addScope('email');
facebookProvider.setCustomParameters({
  'display': 'popup',
});

Fornire le credenziali al metodo signInWithPopup . Verrà visualizzata una nuova finestra che richiede all'utente di accedere alla tua applicazione Facebook:

Future<UserCredential> signInWithFacebook() async {
  // Create a new provider
  FacebookAuthProvider facebookProvider = FacebookAuthProvider();

  facebookProvider.addScope('email');
  facebookProvider.setCustomParameters({
    'display': 'popup',
  });

  // Once signed in, return the UserCredential
  return await FirebaseAuth.instance.signInWithPopup(facebookProvider);

  // Or use signInWithRedirect
  // return await FirebaseAuth.instance.signInWithRedirect(facebookProvider);
}

Mela

iOS+

Prima di iniziare, configura Accedi con Apple e abilita Apple come provider di accesso .

Successivamente, assicurati che le tue app Runner dispongano della funzionalità "Accedi con Apple".

Androide

Prima di iniziare, configura Accedi con Apple e abilita Apple come provider di accesso .

ragnatela

Prima di iniziare, configura Accedi con Apple e abilita Apple come provider di accesso .

import 'package:firebase_auth/firebase_auth.dart';

Future<UserCredential> signInWithApple() async {
  final appleProvider = AppleAuthProvider();
  if (kIsWeb) {
    await FirebaseAuth.instance.signInWithPopup(appleProvider);
  } else {
    await FirebaseAuth.instance.signInWithProvider(appleProvider);
  }
}

Microsoft

iOS+

Prima di iniziare , configura Microsoft Login per iOS e aggiungi gli schemi URL personalizzati al tuo Runner (passaggio 1) .

Androide

Prima di iniziare , configura Microsoft Login per Android .

Non dimenticare di aggiungere l'impronta digitale SHA-1 della tua app.

ragnatela

Prima di iniziare configurare Microsoft Login per Web .

import 'package:firebase_auth/firebase_auth.dart';

Future<UserCredential> signInWithMicrosoft() async {
  final microsoftProvider = MicrosoftAuthProvider();
  if (kIsWeb) {
    await FirebaseAuth.instance.signInWithPopup(microsoftProvider);
  } else {
    await FirebaseAuth.instance.signInWithProvider(microsoftProvider);
  }
}

Cinguettio

Assicurati che il provider di accesso "Twitter" sia abilitato sulla console Firebase con una chiave API e un segreto API impostati. Assicurati che il tuo URI di reindirizzamento Firebase OAuth (ad es. my-app-12345.firebaseapp.com/__/auth/handler) sia impostato come URL di callback di autorizzazione nella pagina delle impostazioni dell'app nella configurazione dell'app Twitter .

Potrebbe anche essere necessario richiedere un accesso API elevato a seconda della tua app .

iOS+

Devi configurare il tuo schema URL personalizzato come descritto nel passaggio 1 della guida iOS .

Androide

Se non hai ancora specificato l'impronta digitale SHA-1 della tua app, fallo dalla pagina Impostazioni della console Firebase. Fare riferimento a Autenticazione del client per i dettagli su come ottenere l'impronta digitale SHA-1 dell'app.

ragnatela

Funziona fuori dagli schemi.

import 'package:firebase_auth/firebase_auth.dart';

Future<void> _signInWithTwitter() async {
  TwitterAuthProvider twitterProvider = TwitterAuthProvider();

  if (kIsWeb) {
    await FirebaseAuth.instance.signInWithPopup(twitterProvider);
  } else {
    await FirebaseAuth.instance.signInWithProvider(twitterProvider);
  }
}

Git Hub

Assicurati di aver configurato un'app OAuth dalle Impostazioni sviluppatore GitHub e che il provider di accesso "GitHub" sia abilitato sulla console Firebase con l'ID client e il segreto impostati, con l'URL di richiamata impostato nell'app GitHub.

iOS+ e Android

Per le piattaforme native, devi aggiungere google-services.json e GoogleService-Info.plist .

Per iOS, aggiungi lo schema URL personalizzato come descritto nel passaggio 1 della guida iOS .

Future<UserCredential> signInWithGitHub() async {
  // Create a new provider
  GithubAuthProvider githubProvider = GithubAuthProvider();

  return await FirebaseAuth.instance.signInWithProvider(githubProvider);
}

ragnatela

Sul Web, GitHub SDK fornisce supporto per la gestione automatica del flusso di autenticazione utilizzando i dettagli dell'applicazione GitHub forniti nella console Firebase. Assicurati che l'URL di richiamata nella console Firebase sia aggiunto come URL di richiamata nella tua applicazione GitHub sulla console per sviluppatori.

Per esempio:

Crea un provider GitHub e fornisci le credenziali al metodo signInWithPopup . Verrà visualizzata una nuova finestra che richiede all'utente di accedere all'applicazione GitHub:

Future<UserCredential> signInWithGitHub() async {
  // Create a new provider
  GithubAuthProvider githubProvider = GithubAuthProvider();

  // Once signed in, return the UserCredential
  return await FirebaseAuth.instance.signInWithPopup(githubProvider);

  // Or use signInWithRedirect
  // return await FirebaseAuth.instance.signInWithRedirect(githubProvider);
}

Yahoo

Assicurati che il provider di accesso "Yahoo" sia abilitato sulla console di Firebase con una chiave API e un segreto API impostati. Assicurati inoltre che l'URI di reindirizzamento OAuth di Firebase (ad es. my-app-12345.firebaseapp.com/__/auth/handler) sia impostato come URI di reindirizzamento nella configurazione Yahoo Developer Network della tua app.

iOS+

Prima di iniziare, configura Yahoo Login per iOS e aggiungi gli schemi URL personalizzati al tuo Runner (passaggio 1) .

Androide

Prima di iniziare, configura Yahoo Login per Android .

Non dimenticare di aggiungere l'impronta digitale SHA-1 della tua app.

ragnatela

Funziona fuori dagli schemi.

import 'package:firebase_auth/firebase_auth.dart';

Future<UserCredential> signInWithYahoo() async {
  final yahooProvider = YahooAuthProvider();
  if (kIsWeb) {
    await _auth.signInWithPopup(yahooProvider);
  } else {
    await _auth.signInWithProvider(yahooProvider);
  }
}

Utilizzo del token di accesso OAuth

Utilizzando un AuthProvider, puoi recuperare il token di accesso associato al provider effettuando la seguente richiesta.

final appleProvider = AppleAuthProvider();

final user = await FirebaseAuth.instance.signInWithProvider(appleProvider);
final accessToken = user.credential?.accessToken;

// You can send requests with the `accessToken`

Collegamento di un provider di autenticazione

Se desideri collegare un provider a un utente corrente, puoi utilizzare il seguente metodo: ```dart await FirebaseAuth.instance.signInAnonymously();

appleProvider finale = AppleAuthProvider();

if (kIsWeb) { attendono FirebaseAuth.instance.currentUser?.linkWithPopup(appleProvider);

// Puoi anche utilizzare linkWithRedirect } else { await FirebaseAuth.instance.currentUser?.linkWithProvider(appleProvider); }

// Il tuo utente anonimo è ora aggiornato per poterti connettere con Accedi con Apple ```

Riautenticare con il provider

Lo stesso modello può essere utilizzato con reauthenticateWithProvider che può essere utilizzato per recuperare nuove credenziali per operazioni sensibili che richiedono un accesso recente.

final appleProvider = AppleAuthProvider();

if (kIsWeb) {
  await FirebaseAuth.instance.currentUser?.reauthenticateWithPopup(appleProvider);
  
  // Or you can reauthenticate with a redirection
  // await FirebaseAuth.instance.currentUser?.reauthenticateWithRedirect(appleProvider);
} else {
  await FirebaseAuth.instance.currentUser?.reauthenticateWithProvider(appleProvider);
}

// You can now perform sensitive operations