คู่มือนี้จะช่วยให้คุณเข้าใจการเปลี่ยนแปลงที่จำเป็นและขั้นตอนการย้ายข้อมูลไลบรารี JavaScript จากไลบรารีแพลตฟอร์ม Google Sign-In ก่อนหน้านี้ไปยังไลบรารี Google Identity Services เวอร์ชันใหม่เพื่อการตรวจสอบสิทธิ์ให้สำเร็จ
หากลูกค้าของคุณใช้ไลบรารีของไคลเอ็นต์ Google API สำหรับ JavaScript หรือไลบรารีก่อนหน้านี้อื่นๆ เพื่อการให้สิทธิ์ โปรดดูข้อมูลเพิ่มเติมที่ย้ายข้อมูลไปยัง Google Identity Services
การตรวจสอบสิทธิ์และการให้สิทธิ์
การตรวจสอบสิทธิ์จะระบุตัวตนของบุคคล และมักเรียกว่าการลงชื่อสมัครใช้หรือลงชื่อเข้าใช้ของผู้ใช้ การให้สิทธิ์คือกระบวนการให้หรือปฏิเสธสิทธิ์เข้าถึงข้อมูลหรือทรัพยากร ตัวอย่างเช่น แอปขอความยินยอมจากผู้ใช้เพื่อเข้าถึง Google ไดรฟ์ของผู้ใช้
ไลบรารี Google Identity Services ใหม่สร้างขึ้นเพื่อรองรับทั้งกระบวนการตรวจสอบสิทธิ์และการให้สิทธิ์เช่นเดียวกับไลบรารีแพลตฟอร์ม Google Sign-In เวอร์ชันเก่า
แต่ไลบรารีเวอร์ชันใหม่จะแยกกระบวนการ 2 รายการนี้ออกจากกันเพื่อลดความซับซ้อนสำหรับนักพัฒนาแอปในการผสานรวมบัญชี Google กับแอป
หากกรณีการใช้งานเกี่ยวข้องกับการตรวจสอบสิทธิ์เท่านั้น ให้อ่านหน้านี้ต่อ
หาก Use Case ของคุณมีการให้สิทธิ์ โปรดอ่านวิธีการทํางานของการให้สิทธิ์ผู้ใช้และย้ายข้อมูลไปยังบริการระบุตัวตนของ Google เพื่อให้แน่ใจว่าแอปพลิเคชันของคุณใช้ API ใหม่ที่ปรับปรุงแล้ว
มีอะไรเปลี่ยนแปลงบ้าง
สําหรับผู้ใช้ ไลบรารี Google Identity Services ใหม่มีการปรับปรุงความสามารถในการใช้งานหลายอย่าง ไฮไลต์มีดังนี้
- ขั้นตอนการลงชื่อเข้าใช้แบบ One Tap และแบบอัตโนมัติที่ง่ายขึ้นใหม่ซึ่งมีขั้นตอนแต่ละขั้นตอนน้อยลง
- ปุ่มลงชื่อเข้าใช้ที่ปรับปรุงใหม่พร้อมการปรับเปลี่ยนในแบบของผู้ใช้
- การสร้างแบรนด์ที่สอดคล้องกัน และพฤติกรรมการลงชื่อเข้าใช้แบบเดียวกัน บนเว็บช่วยให้เกิดความเข้าใจและเชื่อถือ
- เข้าถึงเนื้อหาได้อย่างรวดเร็ว ผู้ใช้สามารถลงชื่อสมัครใช้และเข้าสู่ระบบได้โดยตรงจากที่ใดก็ได้ในเว็บไซต์ โดยไม่ต้องไปที่หน้าการเข้าสู่ระบบหรือบัญชีก่อน
สำหรับนักพัฒนาแอป เรามุ่งเน้นที่การลดความซับซ้อน ปรับปรุงความปลอดภัย และทำให้ผสานรวมได้อย่างรวดเร็วที่สุด การปรับปรุงเหล่านี้บางส่วน ได้แก่
- ตัวเลือกในการเพิ่มการลงชื่อเข้าใช้ของผู้ใช้ลงในเนื้อหาแบบคงที่ของเว็บไซต์โดยใช้แค่ HTML
- การแยกการตรวจสอบสิทธิ์การลงชื่อเข้าใช้ออกจากการให้สิทธิ์และการแชร์ข้อมูลผู้ใช้ ทำให้คุณไม่จำเป็นต้องผสานรวม OAuth 2.0 ที่ซับซ้อนเพื่อลงชื่อเข้าใช้ผู้ใช้ในเว็บไซต์อีกต่อไป
- ระบบจะยังคงรองรับทั้งโหมดป๊อปอัปและโหมดเปลี่ยนเส้นทาง แต่ตอนนี้โครงสร้างพื้นฐาน OAuth 2.0 ของ Google จะเปลี่ยนเส้นทางไปยังปลายทางการเข้าสู่ระบบของเซิร์ฟเวอร์แบ็กเอนด์
- ซึ่งรวมความสามารถจากไลบรารี JavaScript ของ Google Identity และ Google API ก่อนหน้านี้ ไว้ในไลบรารีใหม่แห่งเดียว
- สำหรับคำตอบการลงชื่อเข้าใช้ ตอนนี้คุณเลือกได้ว่าจะใช้ Promise หรือไม่ และระบบได้นำการสื่อให้เข้าใจผ่านฟังก์ชันสไตล์ 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 ที่มีอยู่ เลือกจากโหมดป๊อปอัปหรือการเปลี่ยนเส้นทางเพื่อดูความแตกต่างในการจัดการการตอบกลับการตรวจสอบสิทธิ์ด้วยระบบการเรียกกลับ JavaScript หรือการเปลี่ยนเส้นทางที่ปลอดภัยไปยังปลายทางการเข้าสู่ระบบเซิร์ฟเวอร์แบ็กเอนด์
วิธีก่อนหน้านี้
โหมดป๊อปอัป
แสดงผลปุ่มลงชื่อเข้าใช้ด้วย Google และใช้การเรียกกลับเพื่อจัดการการลงชื่อเข้าใช้จากเบราว์เซอร์ของผู้ใช้โดยตรง
<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 โดยสิ้นสุดด้วยการเรียก 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" แสดงป๊อปอัป "แตะครั้งเดียว" พร้อมกับปุ่มที่ปรับเปลี่ยนในแบบของคุณเพื่อปรับปรุงอัตราการลงชื่อเข้าใช้
สถานะการลงชื่อเข้าใช้ของผู้ใช้จะไม่อัปเดตข้อความบนปุ่มจาก "ลงชื่อเข้าใช้" เป็น "ลงชื่อเข้าใช้แล้ว" หลังจากให้ความยินยอมหรือเมื่อกลับมาเข้าชมอีก ปุ่มที่ปรับเปลี่ยนในแบบของคุณจะมีชื่อ อีเมล และรูปโปรไฟล์ของผู้ใช้
ในตัวอย่างนี้ที่มีเฉพาะการตรวจสอบสิทธิ์ accounts.google.com/gsi/client
library, g_id_signin
class และ g_id_onload
object ใหม่จะแทนที่ apis.google.com/js/platform.js
library และ g-signin2
object ก่อนหน้า
นอกจากการแสดงผลปุ่มที่กำหนดเองแบบใหม่แล้ว โค้ดตัวอย่างยังแสดงป๊อปอัป 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 ในกรณีต่อไปนี้
- ไปยังเครื่องจัดการ Callback JavaScript บนเบราว์เซอร์ของผู้ใช้ในโหมดป๊อปอัป หรือ
- ไปยังเซิร์ฟเวอร์แบ็กเอนด์ผ่าน Google จะเปลี่ยนเส้นทางไปยังปลายทางการเข้าสู่ระบบของคุณเมื่อตั้งค่าปุ่มลงชื่อเข้าใช้ด้วย Google
ux_mode
เป็นredirect
ไม่ว่าจะในกรณีใด โปรดอัปเดตตัวแฮนเดิลการเรียกกลับที่มีอยู่โดยนําสิ่งต่อไปนี้ออก
- การโทรไปยัง
googleUser.getBasicProfile()
- การอ้างอิง
BasicProfile
และการเรียกใช้ที่เกี่ยวข้องกับเมธอดgetId()
,getName()
,getGivenName()
,getFamilyName()
,getImageUrl()
และgetEmail()
- การใช้ออบเจ็กต์
AuthResponse
แต่ให้ใช้การอ้างอิงโดยตรงกับcredential
ช่องย่อยในออบเจ็กต์ JWT ใหม่ CredentialResponse
เพื่อทำงานกับข้อมูลโปรไฟล์ผู้ใช้แทน
นอกจากนี้ และสำหรับโหมดเปลี่ยนเส้นทางเท่านั้น โปรดป้องกันการสร้างคำขอข้ามเว็บไซต์ (CSRF) และยืนยันโทเค็น Google ID ในเซิร์ฟเวอร์แบ็กเอนด์
หากต้องการทําความเข้าใจวิธีที่ผู้ใช้โต้ตอบกับเว็บไซต์ได้ดียิ่งขึ้น คุณสามารถใช้ฟิลด์ 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()
และตัวแฮนเดิลการเรียกกลับที่ลงทะเบียนไว้ออก
ก่อนหน้านี้มีการใช้Listeners เพื่อแชร์การเปลี่ยนแปลงสถานะการลงชื่อเข้าใช้บัญชี Google ของผู้ใช้ ระบบไม่รองรับ Listener อีกต่อไป
นำการอ้างอิงถึง listen()
, auth2.currentUser
และ
auth2.isSignedIn
ออก
คุกกี้
ฟีเจอร์ลงชื่อเข้าใช้ด้วย Google ใช้คุกกี้แบบจำกัด คำอธิบายเกี่ยวกับคุกกี้เหล่านี้มีดังนี้ ดูข้อมูลเพิ่มเติมเกี่ยวกับคุกกี้ประเภทอื่นๆ ที่ Google ใช้ได้จากวิธีที่ Google ใช้คุกกี้
ระบบจะไม่ใช้คุกกี้ G_ENABLED_IDPS
ที่การตั้งค่าไว้ก่อนหน้านี้ในไลบรารีแพลตฟอร์ม Google Sign-In อีกต่อไป
ไลบรารีบริการระบุตัวตนของ 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()
เพื่อแสดงฟีเจอร์แตะเดียวหรือลงชื่อเข้าใช้โดยอัตโนมัติ
หากคุณมีบริการที่จัดการคุกกี้ โปรดเพิ่มคุกกี้ใหม่ 2 รายการและนําคุกกี้ก่อนหน้าออกเมื่อการย้ายข้อมูลเสร็จสมบูรณ์
หากคุณจัดการโดเมนหรือโดเมนย่อยหลายรายการ โปรดดูวิธีการเพิ่มเติมเกี่ยวกับการใช้คุกกี้ 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.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 ของผู้ใช้ |