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 bisher
profile.emails.read
zu diesem Zweck verwendet haben, verwenden 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 die Anmeldeschaltfläche, die angeforderten Zugriffsbereiche und die Anleitung zum Abrufen von Profilinformationen von Google aktualisieren.
Wenn Sie Ihre Anmeldeschaltfläche aktualisieren, dürfen Sie weder auf G+ Bezug nehmen noch die Farbe Rot verwenden. 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 Umfang | 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 abrufen und der Client diesen Code zusammen mit dem Schutz vor Website-übergreifender Anfragefälschung 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 lieber über den Codeablauf abrufen möchten, können Sie das tun. Sobald Ihr Server ein Zugriffstoken hat, müssen Sie Nutzerprofilinformationen über die userinfo
-Endpunkte abrufen, die in unserem Discovery-Dokument zur Anmeldung 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.
HTML-Anmeldeschaltfläche migrieren
Wenn Sie auf Ihrer Seite eine Google+-Anmeldeschaltfläche 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 „Anmeldeschaltfläche“ die Klasse
g-signin2
anstelle vong-signin
zu. Geben Sie außerdem separate Erfolgs- und Fehler-Callbacks an, anstatt einen einzelnen Callback, wie im folgenden Beispiel:<!-- 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 kannst du die allgemeinen Profilinformationen des Nutzers wie Name, E-Mail-Adresse und Fotobild-URL abrufen:// 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.
JavaScript-initiierten Anmeldevorgang migrieren
Wenn Sie den Anmeldevorgang mit einem Aufruf von gapi.auth.signIn()
gestartet haben, wenn Nutzer auf die Anmeldeschaltfläche klicken, 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">
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. Sie können die grundlegenden Profilinformationen des Nutzers 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 Umfang von
https://www.googleapis.com/auth/plus.login
inprofile
.Verwenden Sie die Methode
gapi.auth2.grantOfflineAccess()
mit Ihrer vorhandenen Rückruffunktion, 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.