คู่มือนี้ช่วยให้คุณเข้าใจการเปลี่ยนแปลงและขั้นตอนที่จำเป็นในการย้ายข้อมูลไลบรารี JavaScript จากไลบรารีแพลตฟอร์ม Google Sign-In เวอร์ชันก่อนหน้าไปยังไลบรารี Google Identity Services เวอร์ชันใหม่กว่าเพื่อการตรวจสอบสิทธิ์ให้สำเร็จ
หากไคลเอ็นต์ของคุณใช้ไลบรารีของไคลเอ็นต์ Google API สำหรับ JavaScript หรือไลบรารีอื่นๆ ก่อนหน้านี้เพื่อการให้สิทธิ์ โปรดดูข้อมูลเพิ่มเติมที่ย้ายข้อมูลไปยัง Google Identity Services
การตรวจสอบสิทธิ์และการให้สิทธิ์
การตรวจสอบสิทธิ์จะระบุตัวตนของบุคคล และมักเรียกกันว่า การลงชื่อสมัครใช้หรือการลงชื่อเข้าใช้ของผู้ใช้ การให้สิทธิ์คือกระบวนการให้หรือปฏิเสธการเข้าถึงข้อมูลหรือทรัพยากร เช่น แอปของคุณขอความยินยอมจากผู้ใช้เพื่อเข้าถึง Google ไดรฟ์ของผู้ใช้
ไลบรารีแพลตฟอร์ม Google Sign-In รุ่นก่อนหน้าและไลบรารี Google Identity Services ใหม่สร้างขึ้นเพื่อรองรับทั้งกระบวนการตรวจสอบสิทธิ์และการให้สิทธิ์
อย่างไรก็ตาม ไลบรารีเวอร์ชันใหม่จะแยก 2 กระบวนการนี้ออกจากกันเพื่อลดความซับซ้อน สำหรับนักพัฒนาแอปในการผสานรวมบัญชี Google กับแอปของคุณ
หากกรณีการใช้งานของคุณเกี่ยวข้องกับการตรวจสอบสิทธิ์เท่านั้น ให้อ่านหน้านี้ต่อ
หากกรณีการใช้งานของคุณรวมถึงการให้สิทธิ์ โปรดอ่านวิธีการทำงานของการให้สิทธิ์ผู้ใช้ และย้ายข้อมูลไปยังบริการระบุตัวตนของ Google เพื่อให้มั่นใจว่าแอปพลิเคชันของคุณ ใช้ API ใหม่ที่ได้รับการปรับปรุงแล้ว
มีอะไรเปลี่ยนแปลงบ้าง
สำหรับผู้ใช้ Google Identity Services library ใหม่มี การปรับปรุงการใช้งานมากมาย ไฮไลต์ต่างๆ มีดังนี้
- ขั้นตอนการลงชื่อเข้าใช้ด้วย One Tap และการลงชื่อเข้าใช้โดยอัตโนมัติแบบใหม่ที่ราบรื่นขึ้นโดยมีขั้นตอนส่วนบุคคลน้อยลง
- ปุ่มลงชื่อเข้าใช้ที่ปรับปรุงใหม่พร้อมการปรับเปลี่ยนในแบบของผู้ใช้
- การสร้างแบรนด์ที่สอดคล้องกันและลักษณะการลงชื่อเข้าใช้ที่เหมือนกันทั่วทั้งเว็บช่วยเพิ่ม ความเข้าใจและความไว้วางใจ
- เข้าถึงเนื้อหาได้อย่างรวดเร็ว ผู้ใช้สามารถลงชื่อสมัครใช้และลงชื่อเข้าใช้ได้โดยตรงจากทุกที่ในเว็บไซต์โดยไม่ต้องไปที่หน้าเข้าสู่ระบบหรือหน้าบัญชีก่อน
สำหรับนักพัฒนาแอป เรามุ่งเน้นที่การลดความซับซ้อน ปรับปรุงความปลอดภัย และ ทำให้การผสานรวมของคุณรวดเร็วที่สุด การปรับปรุงบางส่วนมีดังนี้
- ตัวเลือกในการเพิ่มการลงชื่อเข้าใช้ของผู้ใช้ลงในเนื้อหาแบบคงที่ของเว็บไซต์โดยใช้เพียง HTML
- การแยกการตรวจสอบสิทธิ์การลงชื่อเข้าใช้จากการให้สิทธิ์และการแชร์ข้อมูลผู้ใช้ ทำให้ไม่จำเป็นต้องมีความซับซ้อนของการผสานรวม OAuth 2.0 เพื่อลงชื่อเข้าใช้เว็บไซต์
- ระบบจะยังคงรองรับทั้งโหมดป๊อปอัปและโหมดเปลี่ยนเส้นทาง แต่ตอนนี้โครงสร้างพื้นฐาน OAuth 2.0 ของ Google จะเปลี่ยนเส้นทางไปยังปลายทางการเข้าสู่ระบบของเซิร์ฟเวอร์แบ็กเอนด์
- การรวมความสามารถจากทั้งไลบรารี JavaScript ของ Google Identity และ Google API ก่อนหน้านี้ไว้ในไลบรารีใหม่เดียว
- สำหรับคำตอบการลงชื่อเข้าใช้ ตอนนี้คุณสามารถเลือกได้ว่าจะใช้ Promise หรือไม่ และเราได้นำการอ้อมผ่านฟังก์ชันรูปแบบ Getter ออกเพื่อความเรียบง่าย
ตัวอย่างการย้ายข้อมูลการลงชื่อเข้าใช้
หากคุณกำลังย้ายข้อมูลจากปุ่มลงชื่อเข้าใช้ด้วย Google ที่มีอยู่และสนใจเฉพาะการลงชื่อเข้าใช้เว็บไซต์ของผู้ใช้ การเปลี่ยนแปลงที่ตรงไปตรงมาที่สุดคือการอัปเดตเป็นปุ่มใหม่ที่ปรับเปลี่ยนในแบบของคุณ ซึ่งทำได้โดยการสลับไลบรารี JavaScript และอัปเดตฐานของโค้ดให้ใช้ออบเจ็กต์การลงชื่อเข้าใช้ใหม่
ไลบรารีและการกำหนดค่า
ไลบรารีแพลตฟอร์ม Google Sign-In เวอร์ชันก่อนหน้า apis.google.com/js/platform.js
และไลบรารีของไคลเอ็นต์ Google APIs สำหรับ JavaScript gapi.client ไม่จำเป็นอีกต่อไปสำหรับการตรวจสอบสิทธิ์และการให้สิทธิ์ผู้ใช้
โดยเราได้แทนที่ด้วยไลบรารี JavaScript ของ Google Identity Services ใหม่เพียงรายการเดียว ดังนี้
accounts.google.com/gsi/client
โมดูล JavaScript 3 รายการก่อนหน้า ได้แก่ api, client และ platform ที่ใช้สำหรับ
การลงชื่อเข้าใช้จะโหลดจาก apis.google.com ทั้งหมด เพื่อช่วยคุณระบุตำแหน่ง
ที่อาจรวมไลบรารีเวอร์ชันก่อนหน้าไว้ในเว็บไซต์ โดยปกติแล้ว
- ปุ่มลงชื่อเข้าใช้เริ่มต้นจะโหลด
apis.google.com/js/platform.js - กราฟิกปุ่มที่กำหนดเองจะโหลด
apis.google.com/js/api:client.jsและ - การใช้
gapi.clientloadsapis.google.com/js/api.jsโดยตรง
ในกรณีส่วนใหญ่ คุณจะใช้ข้อมูลเข้าสู่ระบบรหัสไคลเอ็นต์ของเว็บแอปพลิเคชันที่มีอยู่ต่อไปได้ ในขั้นตอนการย้ายข้อมูล เราขอแนะนำให้คุณอ่านนโยบาย OAuth 2.0 และใช้คอนโซล Google API เพื่อยืนยันและอัปเดตการตั้งค่าไคลเอ็นต์ต่อไปนี้หากจำเป็น
- แอปทดสอบและแอปเวอร์ชันที่ใช้งานจริงใช้โปรเจ็กต์แยกกันและมี รหัสไคลเอ็นต์ของตัวเอง
- ประเภทรหัสไคลเอ็นต์ OAuth 2.0 คือ "เว็บแอปพลิเคชัน" และ
- HTTPS ใช้สำหรับต้นทาง JavaScript ที่ได้รับอนุญาตและ URI เปลี่ยนเส้นทาง
ระบุโค้ดที่ได้รับผลกระทบและทดสอบ
คุกกี้แก้ไขข้อบกพร่องจะช่วยค้นหาโค้ดที่ได้รับผลกระทบและทดสอบลักษณะการทำงานหลังการเลิกใช้งานได้
ในแอปขนาดใหญ่หรือซับซ้อน คุณอาจค้นหาโค้ดทั้งหมดที่ได้รับผลกระทบจากการ
เลิกใช้งานโมดูล gapi.auth2 ได้ยาก หากต้องการบันทึกการใช้งานความสามารถที่กำลังจะเลิกใช้งานในเร็วๆ นี้ลงในคอนโซล ให้ตั้งค่าคุกกี้ G_AUTH2_MIGRATION
เป็น informational ไม่บังคับ: เพิ่มโคลอนตามด้วยค่าคีย์เพื่อ
บันทึกลงในที่เก็บข้อมูลเซสชันด้วย หลังจากลงชื่อเข้าใช้และได้รับ
การตรวจสอบข้อมูลเข้าสู่ระบบ หรือส่งบันทึกที่รวบรวมไปยังแบ็กเอนด์เพื่อวิเคราะห์ในภายหลัง ตัวอย่างเช่น informational:showauth2use จะบันทึกต้นทางและ URL ไปยังคีย์ที่จัดเก็บเซสชันชื่อ showauth2use
หากต้องการยืนยันลักษณะการทำงานของแอปเมื่อระบบไม่โหลดโมดูล gapi.auth2 อีกต่อไป ให้ตั้งค่า
คุกกี้ G_AUTH2_MIGRATION เป็น enforced ซึ่งจะช่วยให้ทดสอบ
ลักษณะการทำงานหลังการเลิกใช้งานได้ก่อนวันที่บังคับใช้
ค่าคุกกี้ที่เป็นไปได้ของ G_AUTH2_MIGRATION
enforcedอย่าโหลดโมดูลgapi.auth2informationalบันทึกการใช้ความสามารถที่เลิกใช้งานแล้วไปยังคอนโซล JS และบันทึกลงในที่เก็บข้อมูลเซสชันเมื่อตั้งชื่อคีย์ที่ไม่บังคับ ดังนี้informational:key-name
เราขอแนะนำให้คุณตั้งค่าคุกกี้นี้ในเครื่องก่อน ระหว่างการพัฒนาและการทดสอบ ก่อนที่จะนำไปใช้ในสภาพแวดล้อมการใช้งานจริง เพื่อลดผลกระทบต่อผู้ใช้
HTML และ JavaScript
ในสถานการณ์การลงชื่อเข้าใช้เพื่อการตรวจสอบสิทธิ์เท่านั้นนี้ จะมีการแสดงตัวอย่างโค้ดและการแสดงผลของปุ่ม Google Sign-In ที่มีอยู่ เลือกจากโหมดป๊อปอัปหรือโหมดเปลี่ยนเส้นทางเพื่อดูความแตกต่างของวิธีจัดการการตอบกลับการตรวจสอบสิทธิ์โดยการเรียกกลับ JavaScript หรือโดยการเปลี่ยนเส้นทางที่ปลอดภัยไปยังปลายทางการเข้าสู่ระบบของเซิร์ฟเวอร์แบ็กเอนด์
วิธีเดิม
โหมดป๊อปอัป
แสดงปุ่ม Google Sign-In และใช้ Callback เพื่อจัดการการลงชื่อเข้าใช้โดยตรงจากเบราว์เซอร์ของผู้ใช้
<html>
<body>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
<div class="g-signin2" data-onsuccess="handleCredentialResponse"></div>
</body>
</html>
โหมดเปลี่ยนเส้นทาง
แสดงปุ่ม Google Sign-In โดยสิ้นสุดด้วยการเรียก AJAX จากเบราว์เซอร์ของผู้ใช้ไปยังปลายทางการเข้าสู่ระบบของเซิร์ฟเวอร์แบ็กเอนด์
<html>
<body>
<script src="https://apis.google.com/js/platform.js" async defer></script>
<meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
<div class="g-signin2" data-onsuccess="handleCredentialResponse"></div>
<script>
function handleCredentialResponse(googleUser) {
...
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://yourbackend.example.com/tokensignin');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
console.log('Signed in as: ' + xhr.responseText);
};
xhr.send('idtoken=' + id_token);
}
</script>
</body>
</html>
แสดงผล
แอตทริบิวต์ภาพใหม่ช่วยลดความซับซ้อนของวิธีการสร้างปุ่ม
ที่กำหนดเองแบบเดิม ไม่ต้องเรียกใช้ gapi.signin2.render() และคุณไม่จำเป็นต้องโฮสต์และดูแลรักษารูปภาพและชิ้นงานภาพในเว็บไซต์


ข้อความปุ่มอัปเดตสถานะการลงชื่อเข้าใช้ของผู้ใช้
วิธีใหม่
หากต้องการใช้ไลบรารีใหม่ในสถานการณ์การลงชื่อเข้าใช้ที่ต้องมีการตรวจสอบสิทธิ์เท่านั้น ให้เลือก จากโหมดป๊อปอัปหรือโหมดเปลี่ยนเส้นทาง แล้วใช้ตัวอย่างโค้ดเพื่อแทนที่การติดตั้งใช้งานที่มีอยู่บนหน้าเข้าสู่ระบบ
โหมดป๊อปอัป
ใช้การเรียกกลับเพื่อจัดการการลงชื่อเข้าใช้โดยตรงจากเบราว์เซอร์ของผู้ใช้
<html>
<body>
<script src="https://accounts.google.com/gsi/client" async defer></script>
<div id="g_id_onload"
data-client_id="YOUR_CLIENT_ID"
data-callback="handleCredentialResponse">
</div>
<div class="g_id_signin" data-type="standard"></div>
</body>
</html>
โหมดเปลี่ยนเส้นทาง
Google จะเรียกใช้ปลายทางการเข้าสู่ระบบตามที่ระบุโดยแอตทริบิวต์ data-login_url
ก่อนหน้านี้คุณต้องรับผิดชอบต่อการดำเนินการ POST และ
ชื่อพารามิเตอร์ ไลบรารีใหม่จะโพสต์โทเค็นรหัสไปยังปลายทางของคุณในพารามิเตอร์
credential สุดท้าย ให้ยืนยันโทเค็นรหัสในเซิร์ฟเวอร์แบ็กเอนด์
<html>
<body>
<script src="https://accounts.google.com/gsi/client" async defer></script>
<div id="g_id_onload"
data-client_id="YOUR_CLIENT_ID"
data-ux_mode="redirect"
data-login_uri="https://www.example.com/your_login_endpoint">
</div>
<div class="g_id_signin" data-type="standard"></div>
</body>
</html>
แสดงผล
ใช้ visual-attributes เพื่อปรับแต่งปุ่มลงชื่อเข้าใช้ด้วย Google ขนาด รูปร่าง สี แสดงป๊อปอัป One Tap พร้อมปุ่มที่ปรับเปลี่ยนในแบบของคุณ เพื่อปรับปรุงอัตราการลงชื่อเข้าใช้
สถานะการลงชื่อเข้าใช้ของผู้ใช้ไม่อัปเดตข้อความบนปุ่มจาก "ลงชื่อเข้าใช้" เป็น "ลงชื่อเข้าใช้แล้ว" หลังจากให้ความยินยอมหรือเมื่อกลับมาเข้าชมอีกครั้ง ปุ่มที่ปรับเปลี่ยนในแบบของคุณ จะมีชื่อ อีเมล และรูปโปรไฟล์ของผู้ใช้
ในตัวอย่างการตรวจสอบสิทธิ์เท่านั้นนี้ ไลบรารี accounts.google.com/gsi/client คลาส g_id_signin และออบเจ็กต์ g_id_onload ใหม่จะแทนที่ไลบรารี apis.google.com/js/platform.js และออบเจ็กต์ g-signin2 ก่อนหน้านี้
นอกจากจะแสดงปุ่มใหม่ที่ปรับเปลี่ยนในแบบของคุณแล้ว โค้ดตัวอย่างยัง แสดงป๊อปอัปการลงชื่อเข้าใช้ด้วยแตะครั้งเดียวแบบใหม่ด้วย ไม่ว่าคุณจะแสดงปุ่มที่ปรับเปลี่ยนในแบบของคุณที่ใด เราขอแนะนำอย่างยิ่งให้คุณแสดงป๊อปอัป One Tap ด้วยเพื่อลดความยุ่งยากของผู้ใช้ในระหว่างการลงชื่อสมัครใช้และการลงชื่อเข้าใช้
แม้ว่าเราจะไม่แนะนำเนื่องจากจะทำให้การลงชื่อเข้าใช้มีความซับซ้อนมากขึ้น แต่ปุ่มใหม่ที่ปรับเปลี่ยนในแบบของคุณ
สามารถแสดงได้โดยไม่ต้องแสดงกล่องโต้ตอบการแตะครั้งเดียวพร้อมกัน
โดยตั้งค่าแอตทริบิวต์ data-auto_prompt เป็น false
HTML และ JavaScript API
ตัวอย่างก่อนหน้าแสดงวิธีใช้ HTML API ใหม่เพื่อเพิ่มการลงชื่อเข้าใช้ใน เว็บไซต์ หรือจะใช้ JavaScript API ที่มีฟังก์ชันเทียบเท่า หรือจะผสมผสาน HTML และ JavaScript API ในเว็บไซต์ก็ได้
หากต้องการดูตัวเลือกการปรับแต่งปุ่มแบบอินเทอร์แอกทีฟ เช่น ประเภทการเรียกกลับและ แอตทริบิวต์ เช่น สี ขนาด รูปร่าง ข้อความ และธีม โปรดดูเครื่องมือสร้างโค้ด คุณสามารถใช้เครื่องมือนี้เพื่อเปรียบเทียบตัวเลือกต่างๆ อย่างรวดเร็วและสร้าง ข้อมูลโค้ด HTML เพื่อใช้ในเว็บไซต์
ลงชื่อเข้าใช้จากหน้าใดก็ได้ด้วย One Tap
One Tap เป็นวิธีใหม่ที่สะดวกสำหรับผู้ใช้ในการลงชื่อสมัครใช้หรือลงชื่อเข้าใช้เว็บไซต์ของคุณ ซึ่งช่วยให้คุณเปิดใช้การลงชื่อเข้าใช้ของผู้ใช้ได้โดยตรงจากหน้าใดก็ได้ในเว็บไซต์ และ ไม่จำเป็นต้องให้ผู้ใช้ไปที่หน้าเข้าสู่ระบบโดยเฉพาะ กล่าวอีกนัยหนึ่ง การดำเนินการนี้จะช่วยลดความยุ่งยากในการลงชื่อสมัครใช้และลงชื่อเข้าใช้ด้วยการให้ความยืดหยุ่นแก่ผู้ใช้ในการ ลงชื่อสมัครใช้และลงชื่อเข้าใช้จากหน้าอื่นๆ นอกเหนือจากหน้าเข้าสู่ระบบ
หากต้องการเปิดใช้การลงชื่อเข้าใช้จากหน้าใดก็ได้ เราขอแนะนำให้คุณใส่ g_id_onload ใน
ส่วนหัว ส่วนท้าย หรือออบเจ็กต์อื่นๆ ที่รวมไว้ทั่วทั้งเว็บไซต์
นอกจากนี้ เราขอแนะนําให้เพิ่ม g_id_signin ซึ่งจะแสดงปุ่มลงชื่อเข้าใช้ที่ปรับตามโปรไฟล์ของผู้ใช้
เฉพาะในหน้าการจัดการบัญชีเข้าสู่ระบบหรือบัญชีผู้ใช้เท่านั้น ให้ตัวเลือกแก่ผู้ใช้ในการลงชื่อสมัครใช้หรือลงชื่อเข้าใช้โดยแสดงปุ่มข้างปุ่มผู้ให้บริการ
ข้อมูลประจำตัวแบบรวมอื่นๆ รวมถึงช่องป้อนชื่อผู้ใช้และรหัสผ่าน
การตอบกลับของโทเค็น
การลงชื่อเข้าใช้ของผู้ใช้ไม่จำเป็นต้องให้คุณทำความเข้าใจหรือทำงานกับรหัสการให้สิทธิ์ โทเค็นเพื่อการเข้าถึง หรือโทเค็นการรีเฟรชของ OAuth 2.0 อีกต่อไป แต่จะใช้โทเค็นรหัส JSON Web Token (JWT) เพื่อแชร์สถานะการลงชื่อเข้าใช้และโปรไฟล์ผู้ใช้แทน เพื่อความสะดวกยิ่งขึ้น คุณไม่จำเป็นต้องใช้วิธีการเข้าถึงสไตล์ "getter" เพื่อทำงานกับข้อมูลโปรไฟล์ผู้ใช้อีกต่อไป
ระบบจะแสดงข้อมูลเข้าสู่ระบบโทเค็นรหัส JWT ที่ Google ลงนามอย่างปลอดภัยในกรณีต่อไปนี้
- ไปยังแฮนเดิลเลอร์การเรียกกลับ JavaScript ที่อิงตามเบราว์เซอร์ของผู้ใช้ในโหมดป๊อปอัป หรือ
- ไปยังเซิร์ฟเวอร์แบ็กเอนด์ผ่านการเปลี่ยนเส้นทางของ Google ไปยังปลายทางการเข้าสู่ระบบเมื่อตั้งค่าปุ่มลงชื่อเข้าใช้ด้วย Google
ux_modeเป็นredirect
ในทั้ง 2 กรณี ให้อัปเดตตัวแฮนเดิลการเรียกกลับที่มีอยู่โดยนำสิ่งต่อไปนี้ออก
- โทรหา
googleUser.getBasicProfile() - การอ้างอิงถึง
BasicProfileและการเรียกที่เกี่ยวข้องกับเมธอดgetId(),getName(),getGivenName(),getFamilyName(),getImageUrl(),getEmail()และ - การใช้งานออบเจ็กต์
AuthResponse
แต่ให้ใช้การอ้างอิงโดยตรงไปยังcredentialฟิลด์ย่อยใน JWT ใหม่
CredentialResponse เพื่อทำงานกับข้อมูลโปรไฟล์ผู้ใช้แทน
นอกจากนี้ สำหรับโหมดเปลี่ยนเส้นทางเท่านั้น โปรดป้องกันการปลอมแปลงคำขอแบบข้ามเว็บไซต์ (CSRF) และยืนยันโทเค็นรหัส Google ในเซิร์ฟเวอร์แบ็กเอนด์
หากต้องการทำความเข้าใจวิธีที่ผู้ใช้โต้ตอบกับเว็บไซต์ของคุณได้ดียิ่งขึ้น คุณสามารถใช้ฟิลด์
select_by ใน CredentialResponse เพื่อพิจารณาผลลัพธ์ความยินยอมของผู้ใช้
และขั้นตอนการลงชื่อเข้าใช้ที่เฉพาะเจาะจงที่ใช้
ความยินยอมของผู้ใช้และการเพิกถอนสิทธิ์
เมื่อผู้ใช้ลงชื่อเข้าใช้เว็บไซต์เป็นครั้งแรก Google จะแจ้งให้ผู้ใช้ให้ความยินยอม ในการแชร์โปรไฟล์บัญชีกับแอปของคุณ หลังจากให้ความยินยอมแล้วเท่านั้น ระบบจึงจะแชร์โปรไฟล์ของผู้ใช้กับแอปของคุณในเพย์โหลดข้อมูลเข้าสู่ระบบของโทเค็นรหัส การเพิกถอนสิทธิ์เข้าถึงโปรไฟล์นี้เทียบเท่ากับการเพิกถอนโทเค็นเพื่อการเข้าถึงใน ไลบรารีการลงชื่อเข้าใช้ก่อนหน้านี้
ผู้ใช้สามารถเพิกถอนสิทธิ์และยกเลิกการเชื่อมต่อแอปของคุณกับบัญชี Google ได้โดยไปที่ https://myaccount.google.com/permissions
หรือผู้ใช้จะยกเลิกการเชื่อมต่อจากแอปของคุณโดยตรงได้ด้วยการเรียก API
ที่คุณใช้งาน วิธีdisconnectก่อนหน้านี้ถูกแทนที่ด้วยวิธีrevokeที่ใหม่กว่าแล้ว
เมื่อผู้ใช้ลบบัญชีในแพลตฟอร์มของคุณ แนวทางปฏิบัติแนะนำคือการใช้
revokeเพื่อยกเลิกการเชื่อมต่อแอปกับบัญชี Google ของผู้ใช้
ก่อนหน้านี้ auth2.signOut() ใช้เพื่อช่วยจัดการการออกจากระบบของผู้ใช้
จากแอปของคุณได้ คุณควรนำการใช้งาน auth2.signOut() ออก และแอปของคุณ
ควรจัดการสถานะเซสชันต่อผู้ใช้และสถานะการลงชื่อเข้าใช้โดยตรง
สถานะเซสชันและ Listener
ไลบรารีใหม่จะไม่เก็บสถานะการลงชื่อเข้าใช้หรือสถานะเซสชันสำหรับเว็บแอป
สถานะการลงชื่อเข้าใช้ของบัญชี Google รวมถึงสถานะเซสชันและสถานะการลงชื่อเข้าใช้ของแอปเป็นแนวคิดที่แตกต่างกันและแยกกัน
สถานะการลงชื่อเข้าใช้บัญชี Google และแอปของผู้ใช้จะไม่ขึ้นต่อกัน ยกเว้นในขณะที่ลงชื่อเข้าใช้ ซึ่งคุณทราบว่าผู้ใช้ได้ ตรวจสอบสิทธิ์และลงชื่อเข้าใช้บัญชี Google เรียบร้อยแล้ว
เมื่อมีการรวมฟีเจอร์ลงชื่อเข้าใช้ด้วย Google, One Tap หรือการลงชื่อเข้าใช้โดยอัตโนมัติไว้ในเว็บไซต์ ผู้ใช้จะต้องลงชื่อเข้าใช้บัญชี Google ก่อนเพื่อทำสิ่งต่อไปนี้
- ให้ความยินยอมในการแชร์โปรไฟล์ผู้ใช้เมื่อลงชื่อสมัครใช้หรือ ลงชื่อเข้าใช้เว็บไซต์เป็นครั้งแรก
- และในภายหลังสำหรับการลงชื่อเข้าใช้เมื่อผู้ใช้กลับมาเข้าชมเว็บไซต์ของคุณ
ผู้ใช้อาจยังคงลงชื่อเข้าใช้ ออกจากระบบ หรือเปลี่ยนไปใช้บัญชี Google อื่น ขณะที่ยังคงเซสชันที่ลงชื่อเข้าใช้และใช้งานอยู่บนเว็บไซต์ของคุณ
ตอนนี้คุณมีหน้าที่รับผิดชอบในการจัดการสถานะการลงชื่อเข้าใช้ของผู้ใช้เว็บแอปของคุณโดยตรง ก่อนหน้านี้ Google Sign-In ช่วยตรวจสอบสถานะเซสชันของผู้ใช้
นำการอ้างอิงถึง auth2.attachClickHandler() และตัวแฮนเดิลการเรียกกลับที่ลงทะเบียนของ auth2.attachClickHandler() ออก
ก่อนหน้านี้ เราใช้ Listeners เพื่อแชร์การเปลี่ยนแปลงสถานะการลงชื่อเข้าใช้สำหรับบัญชี Google ของผู้ใช้ ระบบไม่รองรับผู้ฟังอีกต่อไป
นำการอ้างอิงถึง listen(), auth2.currentUser และ auth2.isSignedIn ออก
คุกกี้
ฟีเจอร์ลงชื่อเข้าใช้ด้วย Google ใช้คุกกี้อย่างจำกัด โดยคำอธิบายของคุกกี้เหล่านี้ มีดังนี้ ดูข้อมูลเพิ่มเติมเกี่ยวกับคุกกี้ประเภทอื่นๆ ที่ Google ใช้ได้ที่วิธีที่ Google ใช้คุกกี้
ระบบจะไม่ใช้คุกกี้ G_ENABLED_IDPS ที่ตั้งค่าโดยไลบรารี Google Sign-In Platform เวอร์ชันก่อนหน้าอีกต่อไป
ไลบรารีบริการระบุตัวตนของ Google ใหม่อาจตั้งค่าคุกกี้ข้ามโดเมนเหล่านี้โดยอิงตามตัวเลือกการกำหนดค่าของคุณ (ไม่บังคับ)
g_stateจัดเก็บสถานะการออกจากระบบของผู้ใช้และจะตั้งค่าเมื่อใช้ป๊อปอัป One Tap หรือการลงชื่อเข้าใช้โดยอัตโนมัติg_csrf_tokenคือคุกกี้ที่ส่ง 2 ครั้งซึ่งใช้เพื่อป้องกันการโจมตี CSRF และจะตั้งค่าเมื่อมีการเรียกใช้ปลายทางการเข้าสู่ระบบ คุณตั้งค่า URI การเข้าสู่ระบบอย่างชัดแจ้งได้ หรืออาจใช้ URI ของหน้าปัจจุบันเป็นค่าเริ่มต้น ระบบอาจเรียกใช้ปลายทางการเข้าสู่ระบบของคุณภายใต้เงื่อนไขต่อไปนี้เมื่อใช้HTML API ที่มี
data-ux_mode=redirectหรือเมื่อตั้งค่าdata-login_uriเป็น หรือJavaScript API ที่มี
ux_mode=redirectและที่ซึ่งgoogle.accounts.id.prompt()ไม่ได้ใช้เพื่อแสดง One Tap หรือ การลงชื่อเข้าใช้โดยอัตโนมัติ
หากคุณมีบริการที่จัดการคุกกี้ โปรดเพิ่มคุกกี้ใหม่ 2 รายการ และนำคุกกี้ก่อนหน้านี้ออกเมื่อการย้ายข้อมูลเสร็จสมบูรณ์
หากคุณจัดการโดเมนหรือโดเมนย่อยหลายรายการ โปรดดูวิธีการเพิ่มเติมในการทำงานกับคุกกี้ g_state ที่หัวข้อแสดง One Tap ในโดเมนย่อย
การอ้างอิงการย้ายข้อมูลออบเจ็กต์สำหรับการลงชื่อเข้าใช้ของผู้ใช้
| เก่า | ใหม่ | หมายเหตุ |
|---|---|---|
| ไลบรารี JavaScript | ||
| apis.google.com/js/platform.js | accounts.google.com/gsi/client | แทนที่ของเก่าด้วยของใหม่ |
| apis.google.com/js/api.js | accounts.google.com/gsi/client | แทนที่ของเก่าด้วยของใหม่ |
| ออบเจ็กต์ GoogleAuth และเมธอดที่เกี่ยวข้อง | ||
| GoogleAuth.attachClickHandler() | IdConfiguration.callback สำหรับ JS และ HTML data-callback | แทนที่ของเก่าด้วยของใหม่ |
| GoogleAuth.currentUser.get() | CredentialResponse | ใช้ CredentialResponse แทน ไม่จำเป็นอีกต่อไป |
| GoogleAuth.currentUser.listen() | นำออก สถานะการลงชื่อเข้าใช้ Google ปัจจุบันของผู้ใช้ไม่พร้อมใช้งาน ผู้ใช้ต้องลงชื่อเข้าใช้ Google เพื่อให้ความยินยอมและลงชื่อเข้าใช้ ฟิลด์ select_by ใน CredentialResponse สามารถใช้เพื่อกำหนดผลลัพธ์ของ ความยินยอมของผู้ใช้พร้อมกับวิธีการลงชื่อเข้าใช้ที่ใช้ | |
| GoogleAuth.disconnect() | google.accounts.id.revoke | แทนที่ของเก่าด้วยของใหม่ การเพิกถอนอาจเกิดขึ้นได้จาก https://myaccount.google.com/permissions |
| GoogleAuth.grantOfflineAccess() | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| GoogleAuth.isSignedIn.get() | นำออก สถานะการลงชื่อเข้าใช้ Google ปัจจุบันของผู้ใช้ไม่พร้อมใช้งาน ผู้ใช้ต้องลงชื่อเข้าใช้ Google เพื่อให้ความยินยอมและลงชื่อเข้าใช้ | |
| GoogleAuth.isSignedIn.listen() | นำออก สถานะการลงชื่อเข้าใช้ Google ปัจจุบันของผู้ใช้ไม่พร้อมใช้งาน ผู้ใช้ต้องลงชื่อเข้าใช้ Google เพื่อให้ความยินยอมและลงชื่อเข้าใช้ | |
| GoogleAuth.signIn() | นำออก การโหลด HTML DOM ขององค์ประกอบ g_id_signin หรือการเรียก JS ไปยัง google.accounts.id.renderButton จะทริกเกอร์การลงชื่อเข้าใช้บัญชี Google ของผู้ใช้ | |
| GoogleAuth.signOut() | นำออก สถานะการลงชื่อเข้าใช้ของผู้ใช้สำหรับแอปและบัญชี Google เป็นอิสระต่อกัน Google ไม่ได้จัดการสถานะเซสชันสำหรับแอปของคุณ | |
| GoogleAuth.then() | นำออก เลิกใช้งาน GoogleAuth แล้ว | |
| ออบเจ็กต์ GoogleUser และเมธอดที่เกี่ยวข้อง | ||
| GoogleUser.disconnect() | google.accounts.id.revoke | แทนที่ของเก่าด้วยของใหม่ การเพิกถอนอาจเกิดขึ้นได้จาก https://myaccount.google.com/permissions |
| GoogleUser.getAuthResponse() | ||
| GoogleUser.getBasicProfile() | CredentialResponse | ใช้ credential และฟิลด์ย่อยโดยตรงแทนวิธีการ BasicProfile |
| GoogleUser.getGrantedScopes() | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| GoogleUser.getHostedDomain() | CredentialResponse | แต่ให้ใช้ credential.hd โดยตรงแทน |
| GoogleUser.getId() | CredentialResponse | แต่ให้ใช้ credential.sub โดยตรงแทน |
| GoogleUser.grantOfflineAccess() | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| GoogleUser.grant() | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| GoogleUser.hasGrantedScopes() | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| GoogleUser.isSignedIn() | นำออก สถานะการลงชื่อเข้าใช้ Google ปัจจุบันของผู้ใช้ไม่พร้อมใช้งาน ผู้ใช้ต้องลงชื่อเข้าใช้ Google เพื่อให้ความยินยอมและลงชื่อเข้าใช้ | |
| GoogleUser.reloadAuthResponse() | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| ออบเจ็กต์ gapi.auth2 และเมธอดที่เกี่ยวข้อง | ||
| ออบเจ็กต์ gapi.auth2.AuthorizeConfig | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| ออบเจ็กต์ gapi.auth2.AuthorizeResponse | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| ออบเจ็กต์ gapi.auth2.AuthResponse | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| gapi.auth2.authorize() | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| gapi.auth2.ClientConfig() | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| gapi.auth2.getAuthInstance() | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| gapi.auth2.init() | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| ออบเจ็กต์ gapi.auth2.OfflineAccessOptions | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| ออบเจ็กต์ gapi.auth2.SignInOptions | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขตของ OAuth 2.0 แล้ว | |
| ออบเจ็กต์ gapi.signin2 และเมธอดที่เกี่ยวข้อง | ||
| gapi.signin2.render() | นำออก การโหลด HTML DOM ขององค์ประกอบ g_id_signin หรือการเรียก JS ไปยัง google.accounts.id.renderButton จะทริกเกอร์การลงชื่อเข้าใช้บัญชี Google ของผู้ใช้ | |