ขั้นตอนเพื่อลดผลกระทบจากการเปลี่ยนแปลงขอบเขตที่มีต่อผู้ใช้
- หากแอปพลิเคชันต้องใช้อีเมลของผู้ใช้ที่ตรวจสอบสิทธิ์แล้ว และคุณเคยใช้
profile.emails.read
เพื่อวัตถุประสงค์ดังกล่าวมาก่อนหน้านี้ ให้ใช้email
แทน - ขอรับการอนุมัติสำหรับ
profile.emails.read
พร้อมคำขอการยืนยันที่ได้รับอนุมัติ โปรดดูหัวข้อฉันจะส่งข้อมูลเพื่อขอรับการยืนยันได้อย่างไร - เพิกถอนโทเค็นผู้ใช้ก่อนหน้าในขอบเขตที่จะนำออกหรือนำสิทธิ์เข้าถึงแอปพลิเคชันออกทั้งหมด เช่น ควรเพิกถอนโทเค็นที่มีสิทธิ์เข้าถึง
profile.emails.read
เราขอแนะนำให้คุณใช้การเพิกถอนขณะที่ผู้ใช้อยู่ในแอปพลิเคชันของคุณเพื่อให้ได้รับความยินยอมจากผู้ใช้ทันที - แจ้งให้ผู้ใช้ให้ความยินยอมอีกครั้งด้วยขอบเขตใหม่ เช่น
email
โดยไม่มีprofile.emails.read
- นำขอบเขตที่จะเลิกใช้จากการกำหนดค่าหน้าจอขอความยินยอม OAuth ของ Google APIs ออก
การเปลี่ยนแปลงที่คุณต้องดำเนินการเพื่อย้ายข้อมูลเว็บไซต์จาก Google+ Sign-In ไปยัง Google การลงชื่อเข้าใช้ขึ้นอยู่กับขั้นตอนการลงชื่อเข้าใช้ของ Google+ ที่คุณใช้ โดยทั่วไป การย้ายข้อมูล กำหนดให้คุณต้องอัปเดตปุ่มลงชื่อเข้าใช้ ขอบเขตที่ขอ และวิธีการ เกี่ยวกับวิธีเรียกข้อมูลโปรไฟล์จาก Google
เมื่อคุณอัปเดตปุ่มลงชื่อเข้าใช้ โปรดอย่าอ้างถึง G+ หรือใช้สีแดง สอดคล้องกับ หลักเกณฑ์การสร้างแบรนด์
แอปพลิเคชันการลงชื่อเข้าใช้ G+ ส่วนใหญ่ขอใช้ขอบเขตบางอย่างร่วมกัน ดังนี้
plus.login
, plus.me
และ plus.profile.emails.read
คุณต้องแมปใหม่
ดังนี้
ขอบเขตเดิม | ขอบเขตใหม่ |
---|---|
plus.login |
profile |
plus.me |
openid |
plus.profile.emails.read |
email |
ผู้ใช้ Google+ Sign-In จำนวนมากใช้
ขั้นตอนของโค้ด ซึ่งหมายความว่า
แอป Android, iOS หรือ JavaScript ได้รับโค้ด OAuth จาก Google และ
ไคลเอ็นต์จะส่งโค้ดนั้นกลับไปยังเซิร์ฟเวอร์ พร้อมกับคำขอข้ามเว็บไซต์
การปลอมแปลง จากนั้นเซิร์ฟเวอร์จะตรวจสอบโค้ดและรับการรีเฟรช
โทเค็นเพื่อการเข้าถึงเพื่อดึงข้อมูลโปรไฟล์ผู้ใช้จาก people.get
API
ตอนนี้ Google ขอแนะนำให้คุณขอโทเค็นรหัสและส่งโทเค็นรหัสนั้นจาก ไคลเอ็นต์ไปยังเซิร์ฟเวอร์ของคุณ โทเค็นรหัสมีการป้องกันการปลอมแปลงข้ามเว็บไซต์ ในตัวและสามารถยืนยันแบบคงที่บนเซิร์ฟเวอร์ของคุณได้ ซึ่งจะหลีกเลี่ยง การเรียก API เพิ่มเติมเพื่อรับข้อมูลโปรไฟล์ผู้ใช้จากเซิร์ฟเวอร์ของ Google ทำตาม วิธีการตรวจสอบโทเค็นรหัสบนเซิร์ฟเวอร์
หากคุณยังคงต้องการใช้ขั้นตอนของโค้ดเพื่อรับข้อมูลโปรไฟล์
คุณสามารถทำได้ เมื่อเซิร์ฟเวอร์ของคุณมีโทเค็นเพื่อการเข้าถึง คุณจะต้องทำดังนี้
ขอรับข้อมูลโปรไฟล์ผู้ใช้
จาก userinfo
ปลายทางที่ระบุไว้ในการลงชื่อเข้าใช้ของเรา
เอกสารการค้นพบ API
มีการจัดรูปแบบแตกต่างจากการตอบกลับของโปรไฟล์ Google+ ดังนั้นคุณ
ต้องอัปเดตการแยกวิเคราะห์เป็นรูปแบบใหม่
ย้ายข้อมูลปุ่มลงชื่อเข้าใช้แบบ HTML
หากคุณได้เพิ่มปุ่ม Google+ Sign-In ในหน้าเว็บของคุณโดยการมอบหมายชั้นเรียน
g-signin
ให้กับองค์ประกอบ ให้ทำการเปลี่ยนแปลงต่อไปนี้
เมื่อคุณระบุรหัสไคลเอ็นต์ในแท็ก
<meta>
จะเป็นdata-
หรือออบเจ็กต์พารามิเตอร์ ให้เปลี่ยนสตริงclientid
เป็นclient_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">
กำหนดคลาส
g-signin2
ให้กับองค์ประกอบปุ่มลงชื่อเข้าใช้แทนg-signin
นอกจากนี้ ให้ระบุการเรียกกลับสำหรับความสำเร็จและความล้มเหลวแยกกันแทนพารามิเตอร์ Callback เดียวดังตัวอย่างต่อไปนี้<!-- 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>
กำหนดเครื่องจัดการความสำเร็จและความล้มเหลวแทนเครื่องจัดการ Callback เดียว ดังตัวอย่างต่อไปนี้
// 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 }
การเปลี่ยนแปลงเหล่านี้จะอัปเดตขอบเขตเริ่มต้นเป็น
profile email openid
คุณจะดูข้อมูลโปรไฟล์พื้นฐานของผู้ใช้ได้ เช่น ชื่อ อีเมล และรูปภาพ URL รูปภาพ ดังนี้// Google Sign-in (new) function onSignIn(googleUser) { let profile = googleUser.getBasicProfile(); let fullName = profile.getName(); let email = profile.getEmail(); let imageUrl = profile.getImageUrl(); }
ย้ายข้อมูลปุ่มลงชื่อเข้าใช้ที่แสดงผลแบบไดนามิก
หากคุณได้เพิ่มปุ่ม Google+ Sign-In ในหน้าเว็บของคุณโดยการโทร
gapi.signin.render()
โปรดทำการเปลี่ยนแปลงต่อไปนี้
เมื่อคุณระบุรหัสไคลเอ็นต์ในแท็ก
<meta>
จะเป็นdata-
หรือออบเจ็กต์พารามิเตอร์ ให้เปลี่ยนสตริงclientid
เป็นclient_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">
แสดงผลปุ่มลงชื่อเข้าใช้ด้วย
gapi.signin2.render()
แทนที่จะเป็นgapi.signin.render()
ตามตัวอย่างต่อไปนี้// Google+ Sign-in (old) gapi.signin.render('myButton', additionalParams);
// Google Sign-in (new) gapi.signin2.render('myButton', additionalParams);
กำหนดเครื่องจัดการความสำเร็จและความล้มเหลวแทนเครื่องจัดการ Callback เดียว ดังตัวอย่างต่อไปนี้
// 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 }
การเปลี่ยนแปลงเหล่านี้จะอัปเดตขอบเขตเริ่มต้นเป็น profile email openid
คุณสามารถ
ดูข้อมูลโปรไฟล์พื้นฐานของผู้ใช้ด้วยเมธอด getBasicProfile()
ย้ายข้อมูลขั้นตอนการลงชื่อเข้าใช้ที่เริ่มต้นโดย JavaScript
หากคุณเริ่มขั้นตอนการลงชื่อเข้าใช้ด้วยการเรียกไปยัง gapi.auth.signIn()
เมื่อผู้ใช้
คลิกปุ่มลงชื่อเข้าใช้ ทำการเปลี่ยนแปลงต่อไปนี้
เมื่อคุณระบุรหัสไคลเอ็นต์ในแท็ก
<meta>
จะเป็นdata-
หรือออบเจ็กต์พารามิเตอร์ ให้เปลี่ยนสตริงclientid
เป็นclient_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">
ใช้
gapi.auth2.attachClickHandler()
เพื่อเริ่มขั้นตอนการลงชื่อเข้าใช้เมื่อมีปุ่ม จะกด ดังตัวอย่างต่อไปนี้// 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);
กำหนดเครื่องจัดการความสำเร็จและความล้มเหลวแทนเครื่องจัดการ Callback เดียว ดังตัวอย่างต่อไปนี้
// 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 }
การเปลี่ยนแปลงเหล่านี้จะอัปเดตขอบเขตเริ่มต้นเป็น profile email openid
คุณสามารถ
ขอข้อมูลโปรไฟล์พื้นฐานของผู้ใช้ด้วยการโทรไปยัง getBasicProfile()
ย้ายข้อมูลโฟลว์ฝั่งเซิร์ฟเวอร์แบบไฮบริด
หากคุณใช้ JavaScript API เพื่อรับรหัสการให้สิทธิ์แบบใช้ครั้งเดียวสำหรับคุณ เพื่อส่งไปยังเซิร์ฟเวอร์ของคุณ ให้ทำการเปลี่ยนแปลงต่อไปนี้
เปลี่ยนขอบเขตจาก
https://www.googleapis.com/auth/plus.login
เป็นprofile
ใช้เมธอด
gapi.auth2.grantOfflineAccess()
กับ Callback ที่มีอยู่ ดังตัวอย่างต่อไปนี้<!-- 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);
หากต้องการเข้าถึงอีเมลของผู้ใช้ด้วย ให้เพิ่ม email
ลงในพารามิเตอร์ขอบเขต