Schritte zur Minimierung der Auswirkungen von Änderungen am Geltungsbereich auf Nutzer
- Wenn für Ihre 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
. - Sie erhalten die Genehmigung für
profile.emails.read
mit einer genehmigten Überprüfungsanfrage. Weitere Informationen finden Sie unter Wie reiche ich eine App zur Überprüfung ein? - Widerrufen Sie das vorherige Nutzertoken für den zu entfernenden Bereich 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 anzuwenden, während sich Ihre Nutzer in Ihrer App befinden, damit Sie die Nutzereinwilligung sofort einholen können. - Bitten Sie die Nutzer, ihre Einwilligung für den neuen Umfang zu erteilen, z. B.
email
ohneprofile.emails.read
. - Entfernen Sie den Bereich, der eingestellt werden soll, aus der Konfiguration des OAuth-Zustimmungsbildschirms Ihrer Google APIs.
Welche Änderungen Sie vornehmen müssen, um Ihre Website vom Google+ Log-in zu Google Log-in zu migrieren, hängt davon ab, welchen Google+ Log-in-Vorgang Sie verwenden. Im Allgemeinen müssen Sie für die Migration Ihre Anmeldeschaltfläche, die angeforderten Zugriffsbereiche und die Anleitung zum Abrufen von Profilinformationen von Google aktualisieren.
Wenn Sie Ihre Anmeldeschaltfläche aktualisieren, beziehen Sie sich nicht auf Google+ und verwenden Sie nicht die Farbe Rot. Sie müssen unseren aktualisierten Branding-Richtlinien entsprechen.
Die meisten G+ Sign-In-Anwendungen haben eine Kombination der folgenden Berechtigungen 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 der Google+-Anmeldung haben den Codeablauf 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 jetzt, ein ID-Token anzufordern und dieses von Ihrem Client an Ihren Server zu senden. ID-Tokens bieten integrierten websiteübergreifenden Schutz vor Manipulationen und können auch statisch auf Ihrem Server überprüft werden. Dadurch wird ein zusätzlicher API-Aufruf vermieden, um Nutzerprofilinformationen von den Google-Servern abzurufen. Folge der Anleitung, um ID-Tokens auf deinem Server zu validieren.
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 im Discovery-Dokument für Anmeldungen angegeben sind. Die API-Antwort ist anders formatiert als die Antwort des Google+-Profils. Sie müssen das Parsen daher auf das neue Format umstellen.
Schaltfläche „HTML-Anmeldung migrieren“
Wenn Sie eine Google+-Anmeldeschaltfläche auf Ihrer Seite eingefügt haben, indem Sie einem Element die Klasse g-signin
zugewiesen haben, nehmen Sie die folgenden Änderungen vor:
Wenn Sie die Client-ID entweder in einem
<meta>
-Tag, einemdata-
-Attribut oder einem Parameters-Objekt angeben, ändern Sie den Stringclientid
inclient_id
, wie im folgenden Beispiel:<!-- 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>
Definiere anstelle eines einzelnen Callback-Handlers einen Erfolgs- und einen 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 Sie auf Ihrer Seite eine Google+-Anmeldeschaltfläche eingefügt haben, indem Sie gapi.signin.render()
aufgerufen haben, nehmen Sie die folgenden Änderungen vor:
Wenn Sie die Client-ID entweder in einem
<meta>
-Tag, einemdata-
-Attribut oder einem Parameters-Objekt angeben, ändern Sie den Stringclientid
inclient_id
, wie im folgenden Beispiel:<!-- 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">
Rendere die Anmeldeschaltfläche mit
gapi.signin2.render()
anstelle vongapi.signin.render()
, wie im folgenden Beispiel:// Google+ Sign-in (old) gapi.signin.render('myButton', additionalParams);
// Google Sign-in (new) gapi.signin2.render('myButton', additionalParams);
Definiere anstelle eines einzelnen Callback-Handlers einen Erfolgs- und einen 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. Mit der getBasicProfile()
-Methode kannst du die grundlegenden Profilinformationen des Nutzers 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 Sie die Client-ID entweder in einem
<meta>
-Tag, einemdata-
-Attribut oder einem Parameters-Objekt angeben, ändern Sie den Stringclientid
inclient_id
, wie im folgenden Beispiel:<!-- 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">
Verwenden Sie
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);
Definiere anstelle eines einzelnen Callback-Handlers einen Erfolgs- und einen 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.
Hybriden serverseitigen Ablauf migrieren
Wenn Sie die JavaScript API verwendet haben, um einen einmaligen Autorisierungscode abzurufen, den Sie an Ihren Server weitergeben, 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 Parameter „scope“ die Zahl email
hinzu.