Langkah-langkah untuk meminimalkan dampak perubahan ruang lingkup pada pengguna
- Jika aplikasi Anda memerlukan alamat email pengguna terautentikasi, dan Anda sebelumnya menggunakan
profile.emails.read
untuk tujuan tersebut, gunakanemail
. - Dapatkan persetujuan untuk
profile.emails.read
dengan permintaan verifikasi yang disetujui. Lihat Bagaimana cara mengirimkan permohonan verifikasi? - Cabut token pengguna sebelumnya ke cakupan yang akan dihapus atau hapus akses ke aplikasi sepenuhnya. Misalnya, token dengan akses
profile.emails.read
harus dicabut. Sebaiknya terapkan pencabutan tersebut saat pengguna menggunakan aplikasi agar Anda bisa langsung mendapatkan izin pengguna. - Minta pengguna Anda untuk memberikan izin kembali dengan cakupan baru, seperti
email
, tanpaprofile.emails.read
. - Hapus cakupan yang akan dihentikan secara bertahap dari konfigurasi layar izin OAuth Google API Anda.
Perubahan yang harus Anda buat untuk memigrasikan situs dari Masuk dengan Google+ ke Google Proses login bergantung pada alur Login dengan Google+ yang Anda gunakan. Umumnya, migrasi mengharuskan Anda memperbarui tombol login, cakupan, dan petunjuk yang diminta tentang cara mengambil informasi profil dari Google.
Saat Anda memperbarui tombol masuk, jangan merujuk ke G+ atau menggunakan warna merah. Mematuhi pembaruan kami pedoman branding.
Sebagian besar aplikasi Login dengan G+ meminta beberapa kombinasi cakupan:
plus.login
, plus.me
, dan plus.profile.emails.read
. Anda perlu memetakan ulang
cakupan Anda sebagai berikut:
Cakupan lama | Cakupan baru |
---|---|
plus.login |
profile |
plus.me |
openid |
plus.profile.emails.read |
email |
Banyak penerapan Masuk dengan Google+ menggunakan
alur kode. Artinya
bahwa aplikasi Android, iOS, atau JavaScript mendapatkan kode OAuth dari Google, dan
klien mengirimkan kode itu kembali ke server, bersama dengan permintaan lintas situs
perlindungan pemalsuan. Server kemudian memvalidasi kode dan memperoleh pembaruan dan
token akses untuk mengambil informasi profil pengguna dari people.get
API.
Sekarang Google merekomendasikan agar Anda meminta token ID dan mengirim token ID tersebut dari dari klien ke server. Token ID memiliki perlindungan pemalsuan lintas situs bawaan dan juga dapat diverifikasi secara statis di server Anda, yang menghindari panggilan API tambahan untuk mendapatkan informasi profil pengguna dari server Google. Ikuti petunjuk untuk memvalidasi token ID di server Anda.
Jika Anda masih lebih suka menggunakan alur kode untuk mendapatkan informasi profil,
Anda dapat melakukannya. Setelah server Anda memiliki token akses, Anda harus
memperoleh informasi profil pengguna
dari endpoint userinfo
yang ditentukan dalam halaman Login
Dokumen penemuan. API
respons diformat berbeda dengan respons profil Google+, sehingga Anda
perlu memperbarui penguraian Anda ke format baru.
Tombol login Migrate an HTML
Jika Anda menyertakan tombol Masuk dengan Google+ di laman Anda berdasarkan tugas kelas
g-signin
ke elemen, buat perubahan berikut:
Saat Anda menentukan client ID, baik dalam tag
<meta>
,data-
, atau objek parameter, ubah stringclientid
menjadiclient_id
, seperti dalam contoh berikut:<!-- 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">
Tetapkan class
g-signin2
ke elemen tombol login, bukang-signin
. Selain itu, tentukan callback keberhasilan dan kegagalan yang terpisah, bukan callback callback tunggal, seperti dalam contoh berikut:<!-- 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>
Sebagai ganti pengendali callback tunggal, tentukan pengendali keberhasilan dan kegagalan, seperti dalam contoh berikut:
// 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 }
Perubahan ini mengupdate cakupan default Anda ke
profile email openid
. Anda bisa mendapatkan informasi profil dasar pengguna, seperti nama, email, dan foto URL gambar, sebagai berikut:// Google Sign-in (new) function onSignIn(googleUser) { let profile = googleUser.getBasicProfile(); let fullName = profile.getName(); let email = profile.getEmail(); let imageUrl = profile.getImageUrl(); }
Memigrasikan tombol login yang dirender secara dinamis
Jika Anda menyertakan tombol Masuk dengan Google+ di halaman Anda dengan memanggil
gapi.signin.render()
, buat perubahan berikut:
Saat Anda menentukan client ID, baik dalam tag
<meta>
,data-
, atau objek parameter, ubah stringclientid
menjadiclient_id
, seperti dalam contoh berikut:<!-- 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">
Render tombol login dengan
gapi.signin2.render()
, bukangapi.signin.render()
, seperti dalam contoh berikut:// Google+ Sign-in (old) gapi.signin.render('myButton', additionalParams);
// Google Sign-in (new) gapi.signin2.render('myButton', additionalParams);
Sebagai ganti pengendali callback tunggal, tentukan pengendali keberhasilan dan kegagalan, seperti dalam contoh berikut:
// 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 }
Perubahan ini mengupdate cakupan default Anda ke profile email openid
. Anda dapat
mendapatkan informasi profil dasar pengguna dengan metode getBasicProfile()
.
Memigrasikan alur login yang dimulai JavaScript
Jika Anda memulai alur login dengan panggilan ke gapi.auth.signIn()
saat pengguna
klik tombol login, buat perubahan berikut:
Saat Anda menentukan client ID, baik dalam tag
<meta>
,data-
, atau objek parameter, ubah stringclientid
menjadiclient_id
, seperti dalam contoh berikut:<!-- 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">
Gunakan
gapi.auth2.attachClickHandler()
untuk memulai alur login saat tombol ditekan, seperti dalam contoh berikut:// 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);
Sebagai ganti pengendali callback tunggal, tentukan pengendali keberhasilan dan kegagalan, seperti dalam contoh berikut:
// 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 }
Perubahan ini mengupdate cakupan default Anda ke profile email openid
. Anda dapat
mendapatkan informasi profil dasar pengguna dengan panggilan ke getBasicProfile()
.
Memigrasikan alur sisi server hybrid
Jika Anda menggunakan JavaScript API untuk memperoleh kode otorisasi satu kali untuk Anda untuk diteruskan ke server Anda, lakukan perubahan berikut:
Ubah cakupan dari
https://www.googleapis.com/auth/plus.login
menjadiprofile
.Menggunakan metode
gapi.auth2.grantOfflineAccess()
dengan callback yang ada seperti pada contoh berikut:<!-- 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);
Jika Anda juga memerlukan akses ke email pengguna, tambahkan email
ke parameter cakupan.