Diese Seite wurde von der Cloud Translation API übersetzt.
Switch to English

Nutzer mit Apple anmelden

In diesem Dokument wird gezeigt, wie Sie mithilfe von Identity Platform Mit Apple anmelden zu Ihrer Webanwendung hinzufügen.

Hinweis

Anwendung mit Apple konfigurieren

Auf der Website für Apple-Entwickler:

  1. Führen Sie die Schritte unter Mit Apple im Web anmelden aus. Dazu zählen:

    1. Registrieren Sie eine Return-URL wie beispielsweise die folgende:

      https://project-id.firebaseapp.com/__/auth/handler
      
    2. Hosten Sie vorübergehend eine Datei unter der folgenden URL, um Ihre Domain zu bestätigen:

      https://project-id.firebaseapp.com/.well-known/apple-developer-domain-association.txt
      

    Notieren Sie sich außerdem Ihre Dienst-ID und Ihre Apple-Team-ID. Sie benötigen diese im nächsten Abschnitt.

  2. Erstellen Sie einen privaten Schlüssel für "Mit Apple anmelden". Sie benötigen diesen Schlüssel und seine ID im nächsten Abschnitt.

  3. Wenn Sie zum Senden von E-Mails an Ihre Nutzer Identity Platform verwenden, konfigurieren Sie Ihr Projekt mit dem privaten E-Mail-Relay-Dienst von Apple mithilfe der folgenden E-Mail-Adresse:

    noreply@project-id.firebaseapp.com
    

    Sie können auch eine benutzerdefinierte E-Mail-Vorlage nutzen, sofern eine solche für Ihre Anwendung vorhanden ist.

Anforderungen von Apple für anonymisierte Daten einhalten

Apple bietet Nutzern die Möglichkeit, ihre Daten, einschließlich ihrer E-Mail-Adresse, zu anonymisieren. Apple weist Nutzern, die diese Option auswählen, eine verschleierte E-Mail-Adresse mit der Domain privaterelay.appleid.com zu.

Ihre Anwendung muss alle geltenden Entwicklerrichtlinien oder -bedingungen von Apple bezüglich anonymisierter Apple-IDs einhalten. Außerdem muss die Einwilligung des Nutzers eingeholt werden, bevor personenbezogene Daten mit einer anonymisierten Apple-ID verknüpft werden. Beispiele für Aktionen mit personenbezogenen Daten:

  • E-Mail-Adresse mit einer anonymisierten Apple-ID verknüpfen und umgekehrt
  • Telefonnummer mit einer anonymisierten Apple-ID verknüpfen und umgekehrt
  • Nicht-anonyme Anmeldedaten für soziale Medien wie Facebook oder Google mit einer anonymisierten Apple-ID verknüpfen und umgekehrt

Weitere Informationen finden Sie in der Lizenzvereinbarung des Apple-Entwicklerprogramms für Ihr Apple-Entwicklerkonto.

Apple als Anbieter konfigurieren

So konfigurieren Sie Apple als Identitätsanbieter:

  1. Rufen Sie in der Cloud Console die Seite Identitätsanbieter auf.

    Zur Seite "Identitätsanbieter"

  2. Klicken Sie auf Anbieter hinzufügen.

  3. Wählen Sie in der Liste Apple aus.

  4. Wählen Sie unter Plattform die Option Web aus.

  5. Geben Sie Ihre Dienst-ID, Ihre Apple-Team-ID, Ihre Schlüssel-ID und Ihren privaten Schlüssel ein.

  6. Klicken Sie unter Autorisierte Domains auf Domain hinzufügen, um die Domains Ihrer Anwendung zu registrieren. Für Entwicklungszwecke ist localhost bereits standardmäßig aktiviert.

  7. Klicken Sie unter Anwendung konfigurieren auf Einrichtungsdetails. Kopieren Sie das Snippet in den Code Ihrer Anwendung, um das Identity Platform Client SDK zu initialisieren.

  8. Klicken Sie auf Speichern.

Nutzer mit dem Client SDK anmelden

So melden Sie einen Nutzer an:

  1. Erstellen Sie eine Instanz des OAuthProvider-Anbieterobjekts mit der ID apple.com:

    JavaScript

    var provider = new firebase.auth.OAuthProvider('apple.com');
    
  2. Optional: Fügen Sie OAuth-Bereiche hinzu. Die Bereiche legen fest, welche Daten Sie von Apple anfordern. Für sensiblere Daten sind möglicherweise spezielle Bereiche erforderlich. Wenn Ein Konto pro E-Mail-Adresse aktiviert ist, fordert Identity Platform die Bereiche email und name standardmäßig an.

    JavaScript

    provider.addScope('email');
    
  3. Optional: Lokalisieren Sie den Authentifizierungsablauf. Sie können eine Sprache angeben oder die Standardsprache des Geräts verwenden:

    JavaScript

    firebase.auth().languageCode = 'fr_FR';
    // To apply the default browser preference instead of
    // explicitly setting it.
    // firebase.auth().useDeviceLanguage();
    
  4. Melden Sie den Nutzer mithilfe des Anbieterobjekts an. Sie können entweder ein Pop-up-Fenster öffnen oder die aktuelle Seite weiterleiten. Für Nutzer von Mobilgeräten ist die Weiterleitung vereinfacht.

    Rufen Sie signInWithPopup() auf, um ein Pop-up-Fenster einzublenden:

    JavaScript

    firebase
      .auth()
      .signInWithPopup(provider)
      .then(function(result) {
        // The signed-in user info.
        var user = result.user;
         // You can also get the Apple OAuth Access and ID Tokens.
        var accessToken = result.credential.accessToken;
        var idToken = result.credential.idToken;
    
        // ...
      })
      .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;
        // ...
      });
    

    Rufen Sie zum Weiterleiten der Seite zuerst signInWithRedirect() auf:

    JavaScript

    firebase.auth().signInWithRedirect(provider);
    

    Rufen Sie dann getRedirectResult() auf, um das Apple-Token abzurufen, wenn Ihre Seite geladen wird:

    JavaScript

    // Result from Redirect auth flow.
    firebase
      .auth()
      .getRedirectResult()
      .then(function(result) {
        if (result.credential) {
          // You can get the Apple OAuth Access and ID Tokens.
          var accessToken = result.credential.accessToken;
          var idToken = result.credential.idToken;
    
          // ...
        }
        // 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;
    
        // ...
      });
    

Im Gegensatz zu vielen anderen Identitätsanbietern stellt Apple keine Foto-URL bereit.

Wenn ein Nutzer seine reale E-Mail-Adresse nicht mit Ihrer Anwendung teilen möchte, stellt Apple eine eindeutige E-Mail-Adresse für diesen Nutzer bereit. Diese E-Mail hat das Format xyz@privaterelay.appleid.com. Wenn Sie den privaten E-Mail-Relay-Dienst konfiguriert haben, leitet Apple alle an die anonymisierte Adresse gesendeten E-Mails an die reale E-Mail-Adresse des Nutzers weiter.

Apple gibt Nutzerinformationen wie Anzeigenamen nur dann an Anwendungen weiter, wenn sich ein Nutzer zum ersten Mal anmeldet. In den meisten Fällen werden diese Daten von Identity Platform gespeichert, damit Sie sie bei zukünftigen Sitzungen mithilfe von firebase.auth().currentUser.displayName abrufen können. Wenn Sie Nutzern jedoch erlauben, sich mit Apple bei Ihrer Anwendung anzumelden, bevor Sie sie in Identity Platform eingebunden haben, sind keine Nutzerinformationen verfügbar.

Nächste Schritte