Schritte zur Minimierung der Auswirkungen von Änderungen am Umfang auf die Nutzer
- Wenn in Ihrer Anwendung die E-Mail-Adresse eines authentifizierten Nutzers erforderlich ist und Sie zuvor
profile.emails.read
für diesen Zweck verwendet haben, nutzen Sie stattdessenemail
. - Holen Sie mit einer genehmigten Bestätigungsanfrage die Genehmigung für
profile.emails.read
ein. Weitere Informationen finden Sie im Hilfeartikel Wie reiche ich das Formular zur Überprüfung ein? - Widerrufen Sie das vorherige Nutzertoken auf den Bereich, der entfernt werden soll, oder entfernen Sie den Zugriff auf die Anwendung vollständig. Beispielsweise sollte ein Token mit
profile.emails.read
-Zugriff widerrufen werden. Wir empfehlen, den Widerruf vorzunehmen, während sich die Nutzer in Ihrer Anwendung befinden, damit Sie sofort die Einwilligung der Nutzer einholen können. - Fordern Sie Ihre Nutzer auf, dem neuen Umfang, z. B.
email
, noch einmal zuzustimmen, ohneprofile.emails.read
. - Entfernen Sie den Bereich, der aus der Konfiguration des OAuth-Zustimmungsbildschirms für Google APIs eingestellt werden soll.
Welche Änderungen Sie vornehmen müssen, um Ihre Website von Google+ Log-in zu Google Log-in zu migrieren, hängt davon ab, welchen Google+ Log-in-Vorgang Sie verwenden. Im Allgemeinen ist es für die Migration erforderlich, die Anmeldeschaltfläche, die angeforderten Bereiche und die Anleitung zum Abrufen von Profilinformationen von Google zu aktualisieren.
Wenn Sie Ihre Anmeldeschaltfläche aktualisieren, beziehen Sie sich nicht auf Google+ und verwenden Sie nicht die Farbe Rot. Es muss unseren aktualisierten Markenrichtlinien entsprechen.
Die meisten G+ Log-in-Anwendungen haben eine Kombination der Bereiche angefordert: plus.login
, plus.me
und plus.profile.emails.read
. Sie müssen Ihre Bereiche so neu zuordnen:
Alter Bereich | Neuer Bereich |
---|---|
plus.login |
profile |
plus.me |
openid |
plus.profile.emails.read |
email |
Viele Implementierer von Google+ Log-in haben den Codefluss verwendet. Das bedeutet, dass die Android-, iOS- oder JavaScript-Apps einen OAuth-Code von Google erhalten und der Client diesen Code zusammen mit dem websiteübergreifenden Request-Fälschungsschutz an den Server zurücksendet. Der Server validiert dann den Code und ruft Aktualisierungs- und Zugriffstokens ab, um Nutzerprofilinformationen aus der people.get
API abzurufen.
Google empfiehlt Ihnen jetzt, ein ID-Token anzufordern und dieses von Ihrem Client an Ihren Server zu senden. ID-Tokens haben einen integrierten Schutz vor websiteübergreifenden Fälschungen und können auch statisch auf Ihrem Server verifiziert werden. Dadurch wird ein zusätzlicher API-Aufruf zum Abrufen von Nutzerprofilinformationen von den Google-Servern vermieden. Folgen Sie der Anleitung zum Validieren von ID-Tokens auf Ihrem Server.
Wenn Sie Profilinformationen weiterhin über den Codeablauf abrufen möchten, können Sie dies tun. Sobald Ihr Server ein Zugriffstoken hat, müssen Sie Nutzerprofilinformationen von den userinfo
-Endpunkten abrufen, die in unserem Discovery-Dokument für Anmeldungen angegeben sind. Die API-Antwort ist anders formatiert als die Google+ Profilantwort. Daher müssen Sie das Parsing auf das neue Format aktualisieren.
Schaltfläche „HTML-Anmeldung migrieren“
Wenn Sie eine Google+ Log-in-Schaltfläche in Ihre Seite eingefügt haben, indem Sie einem Element die Klasse g-signin
zugewiesen haben, nehmen Sie die folgenden Änderungen vor:
Wenn du deine Client-ID in einem
<meta>
-Tag, einemdata-
-Attribut oder einem Parameterobjekt angibst, ändere den Stringclientid
wie im folgenden Beispiel inclient_id
:<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
Weisen Sie dem Element für die Anmeldeschaltfläche die Klasse
g-signin2
anstelle vong-signin
zu. Geben Sie außerdem separate Erfolgs- und Fehler-Callbacks anstelle eines einzelnen Callbacks an, wie im folgenden Beispiel gezeigt:<!-- Google+ Sign-in (old) --> <div class="g-signin" data-callback="signinCallback"> </div>
<!-- Google Sign-in (new) --> <div class="g-signin2" data-onsuccess="onSignIn" data-onfailure="onSignInFailure"> </div>
Definieren Sie anstelle eines einzelnen Callback-Handlers Erfolgs- und Fehler-Handler wie im folgenden Beispiel:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
Durch diese Änderungen werden Ihre Standardbereiche auf
profile email openid
aktualisiert. So rufen Sie die grundlegenden Profilinformationen des Nutzers ab, z. B. Name, E-Mail-Adresse und URL des Fotobilds:// Google Sign-in (new) function onSignIn(googleUser) { let profile = googleUser.getBasicProfile(); let fullName = profile.getName(); let email = profile.getEmail(); let imageUrl = profile.getImageUrl(); }
Dynamisch gerenderte Anmeldeschaltfläche migrieren
Wenn du durch Aufrufen von gapi.signin.render()
eine Google+ Log-in-Schaltfläche in deine Seite eingefügt hast, nimm die folgenden Änderungen vor:
Wenn du deine Client-ID in einem
<meta>
-Tag, einemdata-
-Attribut oder einem Parameterobjekt angibst, ändere den Stringclientid
wie im folgenden Beispiel inclient_id
:<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
Rendern Sie die Anmeldeschaltfläche mit
gapi.signin2.render()
stattgapi.signin.render()
wie im folgenden Beispiel:// Google+ Sign-in (old) gapi.signin.render('myButton', additionalParams);
// Google Sign-in (new) gapi.signin2.render('myButton', additionalParams);
Definieren Sie anstelle eines einzelnen Callback-Handlers Erfolgs- und Fehler-Handler wie im folgenden Beispiel:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
Durch diese Änderungen werden Ihre Standardbereiche auf profile email openid
aktualisiert. Die grundlegenden Profilinformationen des Nutzers können Sie mit der Methode getBasicProfile()
abrufen.
Von JavaScript initiierten Anmeldevorgang migrieren
Wenn du den Anmeldevorgang mit einem Aufruf von gapi.auth.signIn()
gestartet hast, als Nutzer auf die Anmeldeschaltfläche klicken, nimm die folgenden Änderungen vor:
Wenn du deine Client-ID in einem
<meta>
-Tag, einemdata-
-Attribut oder einem Parameterobjekt angibst, ändere den Stringclientid
wie im folgenden Beispiel inclient_id
:<!-- Google+ Sign-in (old) --> <meta name="google-signin-clientid" content="YOUR_CLIENT_ID">
<!-- Google Sign-in (new) --> <meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
Verwende
gapi.auth2.attachClickHandler()
, um den Anmeldevorgang zu starten, wenn eine Schaltfläche gedrückt wird, wie im folgenden Beispiel:// Google+ Sign-in (old) var signinButton = document.getElementById('signinButton'); signinButton.addEventListener('click', function() { gapi.auth.signIn(additionalParams); });
// Google Sign-in (new) auth2 = gapi.auth2.init(); auth2.attachClickHandler('signinButton', additionalParams, onSignIn, onSignInFailure);
Definieren Sie anstelle eines einzelnen Callback-Handlers Erfolgs- und Fehler-Handler wie im folgenden Beispiel:
// Google+ Sign-in (old) function signinCallback(authResult) { if (authResult['status']['signed_in']) { // Handle successful sign-in } else { // Handle sign-in errors console.log('Sign-in error: ' + authResult['error']); } }
// Google Sign-in (new) function onSignIn(googleUser) { // Handle successful sign-in } function onSignInFailure() { // Handle sign-in errors }
Durch diese Änderungen werden Ihre Standardbereiche auf profile email openid
aktualisiert. Die grundlegenden Profilinformationen des Nutzers können Sie durch einen Aufruf der Methode getBasicProfile()
abrufen.
Serverseitigen Hybridablauf migrieren
Wenn Sie die JavaScript API verwendet haben, um einen einmaligen Autorisierungscode zu erhalten, den Sie an Ihren Server übergeben müssen, nehmen Sie die folgenden Änderungen vor:
Ändern Sie den Bereich von
https://www.googleapis.com/auth/plus.login
inprofile
.Verwenden Sie die Methode
gapi.auth2.grantOfflineAccess()
mit Ihrer vorhandenen Callback-Funktion wie im folgenden Beispiel:<!-- Google+ Sign-in (old) --> <div class="g-signin" data-scope="https://www.googleapis.com/auth/plus.login" data-clientid="YOUR_CLIENT_ID" data-redirecturi="postmessage" data-accesstype="offline" data-callback="signInCallback"> </div>
// Google Sign-in (new) auth2 = gapi.auth2.init({ client_id: 'YOUR_CLIENT_ID', scope: 'profile' }); ... auth2.grantOfflineAccess().then(signInCallback);
Wenn Sie auch Zugriff auf die E-Mail-Adresse des Nutzers benötigen, fügen Sie dem Bereichsparameter email
hinzu.