คู่มือนี้จะช่วยให้คุณเข้าใจการเปลี่ยนแปลงและขั้นตอนที่จําเป็นในการย้ายข้อมูลไลบรารี JavaScript จากไลบรารีแพลตฟอร์ม Google Sign-In เวอร์ชันก่อนหน้าไปยังไลบรารี Google Identity Services ที่ใหม่กว่าเพื่อการตรวจสอบสิทธิ์
หากลูกค้าของคุณกำลังใช้ไลบรารีของไคลเอ็นต์ Google API สำหรับ JavaScript หรือไลบรารีอื่นๆ ก่อนหน้านี้เพื่อการให้สิทธิ์ โปรดดูข้อมูลเพิ่มเติมที่ย้ายข้อมูลไปยัง Google Identity Services
การตรวจสอบสิทธิ์และการให้สิทธิ์
การตรวจสอบสิทธิ์จะระบุว่าผู้ใช้เป็นใคร และโดยทั่วไปจะเรียกว่าการลงชื่อสมัครใช้หรือการลงชื่อเข้าใช้ของผู้ใช้ การให้สิทธิ์คือกระบวนการให้หรือปฏิเสธคำขอเข้าถึงข้อมูลหรือทรัพยากร เช่น แอปขอความยินยอมจากผู้ใช้เพื่อเข้าถึง Google ไดรฟ์ของผู้ใช้
ไลบรารี Google Identity Services ใหม่สร้างขึ้นเพื่อรองรับทั้งกระบวนการตรวจสอบสิทธิ์และการให้สิทธิ์ เช่นเดียวกับไลบรารีแพลตฟอร์ม Google Sign-In ก่อนหน้านี้
อย่างไรก็ตาม ไลบรารีรุ่นใหม่จะแยก 2 กระบวนการออกจากกันเพื่อลดความซับซ้อนในการ ผสานรวมบัญชี Google กับแอปของคุณสำหรับนักพัฒนาซอฟต์แวร์
หากกรณีการใช้งานของคุณเกี่ยวข้องกับการตรวจสอบสิทธิ์เท่านั้น โปรดอ่านหน้านี้ต่อ
หากกรณีการใช้งานของคุณมีการให้สิทธิ์ โปรดอ่านวิธีการให้สิทธิ์ผู้ใช้และย้ายข้อมูลไปยัง Google Identity Services เพื่อให้แน่ใจว่าแอปพลิเคชันของคุณใช้ API ใหม่ที่ได้รับการปรับปรุง
มีอะไรเปลี่ยนแปลงบ้าง
สำหรับผู้ใช้ ไลบรารีบริการ Google Identity ใหม่มีการปรับปรุงความสามารถในการใช้งานหลายประการ ไฮไลต์ต่างๆ มีดังนี้
- ขั้นตอนการลงชื่อเข้าใช้ด้วย One Tap และการลงชื่อเข้าใช้อัตโนมัติใหม่ที่มีอุปสรรคต่ำ ในแต่ละขั้นตอนน้อยลง
- ปุ่มลงชื่อเข้าใช้แบบใหม่ พร้อมการปรับเปลี่ยนในแบบของคุณ
- การสร้างแบรนด์ที่สอดคล้องกัน และพฤติกรรมการลงชื่อเข้าใช้ที่เป็นแบบเดียวกันทั่วทั้งอินเทอร์เน็ต ช่วยเพิ่มความเข้าใจและความไว้วางใจ
- เข้าถึงเนื้อหาได้อย่างรวดเร็ว ผู้ใช้สามารถลงชื่อสมัครใช้และลงชื่อเข้าใช้ได้จากทุกที่ในเว็บไซต์โดยไม่ต้องไปที่หน้าการเข้าสู่ระบบหรือบัญชีก่อน
สำหรับนักพัฒนาซอฟต์แวร์ เรามุ่งเน้นที่การลดความซับซ้อน ปรับปรุงความปลอดภัย และทำให้การผสานรวมของคุณรวดเร็วที่สุดเท่าที่จะทำได้ การปรับปรุงบางอย่างดังกล่าว ได้แก่
- ตัวเลือกในการเพิ่มผู้ใช้ลงชื่อเข้าใช้เนื้อหาแบบคงที่ของเว็บไซต์โดยใช้เพียง HTML
- การแยกการตรวจสอบสิทธิ์การลงชื่อเข้าใช้ออกจากการให้สิทธิ์และการแชร์ข้อมูลผู้ใช้ ความซับซ้อนของการผสานรวม OAuth 2.0 ไม่จำเป็นต้องลงชื่อเข้าใช้ให้ผู้ใช้ในเว็บไซต์อีกต่อไป
- ระบบยังคงรองรับทั้งโหมดป๊อปอัปและโหมดเปลี่ยนเส้นทาง แต่โครงสร้างพื้นฐาน OAuth 2.0 ของ Google จะเปลี่ยนเส้นทางไปยังปลายทางการเข้าสู่ระบบของเซิร์ฟเวอร์แบ็กเอนด์
- การผสานรวมความสามารถจากทั้งไลบรารี Google Identity และ Google API JavaScript ก่อนหน้านี้ไว้ในไลบรารีใหม่
- สำหรับการตอบกลับการลงชื่อเข้าใช้ ตอนนี้คุณสามารถตัดสินใจว่าจะใช้หรือไม่ใช้คำสัญญา และนำคำสั่งทางอ้อมผ่านฟังก์ชันรูปแบบ Getter ออกเพื่อให้เรียบง่าย
ตัวอย่างการย้ายข้อมูลการลงชื่อเข้าใช้
หากคุณย้ายข้อมูลจากปุ่ม Google Sign-In ที่มีอยู่และสนใจที่จะให้ผู้ใช้ลงชื่อเข้าใช้เว็บไซต์ของคุณเท่านั้น การเปลี่ยนแปลงที่ง่ายที่สุดคือการอัปเดตเป็นปุ่มใหม่ที่ปรับเปลี่ยนในแบบของคุณ ซึ่งทำได้โดยการสลับไลบรารี 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.client
จะโหลดapis.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.auth2
informational
บันทึกการใช้ความสามารถที่เลิกใช้งานแล้วในคอนโซล JS นอกจากนี้ ยังบันทึกไปยังพื้นที่เก็บข้อมูลเซสชันเมื่อมีการตั้งชื่อคีย์แบบไม่บังคับ:informational:key-name
เราขอแนะนำให้คุณตั้งค่าคุกกี้นี้ในเครื่องระหว่างการพัฒนาและทดสอบก่อนใช้งานในสภาพแวดล้อมการใช้งานจริง เพื่อลดผลกระทบต่อผู้ใช้ให้เหลือน้อยที่สุด
HTML และ JavaScript
ในสถานการณ์การลงชื่อเข้าใช้เพื่อการตรวจสอบสิทธิ์เท่านั้นนี้จะแสดงตัวอย่างโค้ดและการแสดงผลของปุ่ม Google Sign-In ที่มีอยู่ เลือกจากโหมดป๊อปอัปหรือโหมดเปลี่ยนเส้นทางเพื่อดูความแตกต่างในการจัดการการตอบกลับการตรวจสอบสิทธิ์โดยใช้การเรียกกลับ JavaScript หรือการเปลี่ยนเส้นทางที่ปลอดภัยไปยังปลายทางการเข้าสู่ระบบเซิร์ฟเวอร์แบ็กเอนด์ของคุณ
ก่อนหน้านี้
โหมดป๊อปอัป
แสดงผลปุ่ม Google Sign-In และใช้การเรียกกลับเพื่อจัดการการลงชื่อเข้าใช้โดยตรงจากเบราว์เซอร์ของผู้ใช้
<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>
แสดงผลแล้ว
ใช้แอตทริบิวต์ภาพเพื่อปรับแต่งขนาด รูปร่าง สีของปุ่ม "ลงชื่อเข้าใช้ด้วย Google" แสดงป๊อปอัป One Tap พร้อมกับปุ่มที่ปรับเปลี่ยนในแบบของคุณ เพื่อปรับปรุงอัตราการลงชื่อเข้าใช้
สถานะการลงชื่อเข้าใช้ของผู้ใช้ไม่อัปเดตข้อความปุ่มจาก "ลงชื่อเข้าใช้" เป็น "ลงชื่อเข้าใช้" หลังจากให้คำยินยอมหรือเมื่อกลับมาเข้าชมแล้ว ปุ่มที่ปรับเปลี่ยนในแบบของคุณจะมีชื่อ อีเมล และรูปโปรไฟล์ของผู้ใช้
ในตัวอย่างการตรวจสอบสิทธิ์เท่านั้นนี้ ไลบรารี accounts.google.com/gsi/client
, คลาส g_id_signin
และออบเจ็กต์ g_id_onload
ใหม่จะแทนที่ไลบรารี apis.google.com/js/platform.js
และออบเจ็กต์ g-signin2
ก่อนหน้านี้
นอกจากการแสดงผลปุ่มที่ปรับเปลี่ยนได้ในแบบของคุณใหม่แล้ว โค้ดตัวอย่างยังแสดงป๊อปอัปใหม่ของ One Tap อีกด้วย เมื่อใดก็ตามที่คุณแสดงปุ่มที่ปรับเปลี่ยนในแบบของคุณ เราขอแนะนำให้คุณแสดงป๊อปอัป One Tap ด้วยเพื่อไม่ให้ผู้ใช้ต้องติดขัดระหว่างลงชื่อสมัครใช้และลงชื่อเข้าใช้
ถึงแม้เราจะไม่แนะนำเนื่องจากความยุ่งยากในการลงชื่อเข้าใช้ที่เพิ่มขึ้น แต่ปุ่มที่ปรับเปลี่ยนในแบบของคุณใหม่อาจแสดงแบบเดี่ยวๆ ได้โดยไม่ต้องแสดงกล่องโต้ตอบ
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
ในทั้งสองกรณี ให้อัปเดตเครื่องจัดการการติดต่อกลับที่มีอยู่โดยนำสิ่งต่อไปนี้ออก
- สายไปยัง
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()
และเครื่องจัดการเรียกกลับที่ลงทะเบียนไว้ออก
ก่อนหน้านี้ Listener ใช้เพื่อแชร์การเปลี่ยนแปลงของสถานะการลงชื่อเข้าใช้บัญชี Google ของผู้ใช้ ไม่รองรับ Listener อีกต่อไป
นำการอ้างอิงไปยัง listen()
, auth2.currentUser
และ
auth2.isSignedIn
ออก
คุกกี้
ฟีเจอร์ลงชื่อเข้าใช้ด้วย Google ใช้คุกกี้แบบจำกัด รายละเอียดของคุกกี้เหล่านี้เป็นไปตามข้อกำหนดต่อไปนี้ ดูวิธีที่ Google ใช้คุกกี้ สำหรับข้อมูลเพิ่มเติมเกี่ยวกับคุกกี้ประเภทอื่นๆ ที่ Google ใช้
ระบบจะไม่ใช้คุกกี้ G_ENABLED_IDPS
ที่ไลบรารี Google Sign-In Platform ก่อนหน้านี้ตั้งค่าไว้อีกต่อไป
ไลบรารีบริการ Google Identity ใหม่อาจตั้งค่าคุกกี้ข้ามโดเมนตามตัวเลือกการกำหนดค่าของคุณ
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()
เพื่อแสดงการแตะครั้งเดียวหรือการลงชื่อเข้าใช้อัตโนมัติ
หากคุณมีบริการที่จัดการคุกกี้ อย่าลืมเพิ่มคุกกี้ใหม่ 2 รายการและนําคุกกี้ก่อนหน้าออกเมื่อการย้ายข้อมูลเสร็จสมบูรณ์
หากคุณจัดการโดเมนหรือโดเมนย่อยหลายโดเมน โปรดดู Display One Tap ในโดเมนย่อยสำหรับคำแนะนำเพิ่มเติมเกี่ยวกับการทำงานกับคุกกี้ g_state
ข้อมูลอ้างอิงการย้ายข้อมูลออบเจ็กต์สำหรับการลงชื่อเข้าใช้ของผู้ใช้
เก่า | ใหม่ | หมายเหตุ |
---|---|---|
ไลบรารี 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.Authorization() | นำออก โทเค็นรหัสได้แทนที่โทเค็นเพื่อการเข้าถึงและขอบเขต 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 ของผู้ใช้ |