Accesso degli utenti da un'estensione di Chrome

Questo documento mostra come utilizzare Identity Platform per eseguire l'accesso degli utenti da un'estensione di Chrome.

Prima di iniziare

  • Attivare Identity Platform e configurare un provider di identità. Consulta la Guida rapida per scoprire come fare.

  • Aggiungi i seguenti URL alla lista consentita content_security_policy per l'estensione:

    • https://apis.google.com
    • https://www.gstatic.com
    • https://www.googleapis.com
    • https://securetoken.googleapis.com

    Per saperne di più, consulta la documentazione relativa ai criteri di sicurezza del contenuto (CSP).

Registrazione dell'ID dell'estensione

Per consentire agli utenti di accedere da un'estensione di Chrome, devi registrare l'ID della tua estensione come dominio autorizzato:

  1. Vai alla pagina Impostazioni di Identity Platform nella console Google Cloud.

    Vai alla pagina Impostazioni

  2. Seleziona la scheda Sicurezza.

  3. In Authorized Domains (Domini autorizzati), fai clic su Add Domain (Aggiungi dominio).

  4. Inserisci l'URI dell'estensione. Dovrebbe avere un aspetto simile a chrome-extension://CHROME_EXTENSION_ID.

  5. Fai clic su Add (Aggiungi).

Accesso degli utenti

La procedura di accesso degli utenti da un'estensione di Chrome è simile a quella per un'app web, con alcune differenze:

  • L'autenticazione a più fattori tramite telefono e dispositivi non è supportata.

  • Le estensioni di Chrome non possono utilizzare reindirizzamenti HTTP, quindi dovrai utilizzare operazioni popup (signInWithPopup() e linkWithPopup()) per accedere gli utenti.

  • La chiamata ai metodi di autenticazione da un'azione del browser annullerà l'azione del browser, pertanto richiamali da uno script in background.

  • I metodi popup possono essere utilizzati solo nelle estensioni che utilizzano Manifest V2.

L'esempio seguente illustra l'accesso di un utente con Google:

JavaScript

Popup.js

// Get reference to background page.
const bgPage = chrome.extension.getBackgroundPage();
// Sign in with popup, typically attached to a button click.
bgPage.signInWithPopup();

in background.js

const app = firebase.initializeApp(config);
const auth = app.auth();
const signInWithPopup = () => {
  const provider = new firebase.auth.GoogleAuthProvider();
  return auth.signInWithPopup(provider).catch((error) => {
    console.log(error);
  });
};

Passaggi successivi