ย้ายข้อมูลจาก Google Sign-In

คู่มือนี้จะช่วยให้คุณเข้าใจการเปลี่ยนแปลงและขั้นตอนที่จําเป็นในการย้ายข้อมูลไลบรารี 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() และคุณไม่จำเป็นต้องโฮสต์และดูแลรักษารูปภาพและเนื้อหาภาพในเว็บไซต์

Google Sign-In

ลงชื่อเข้าใช้ Google

ข้อความของปุ่มการอัปเดตสถานะการลงชื่อเข้าใช้ของผู้ใช้

รูปแบบใหม่

หากต้องการใช้ไลบรารีใหม่ในสถานการณ์การลงชื่อเข้าใช้เพื่อการตรวจสอบสิทธิ์เท่านั้น ให้เลือกจากโหมดป๊อปอัปหรือโหมดเปลี่ยนเส้นทาง และใช้ตัวอย่างโค้ดเพื่อแทนที่การใช้งานที่มีอยู่ในหน้าเข้าสู่ระบบ

ใช้การเรียกกลับเพื่อจัดการการลงชื่อเข้าใช้ได้โดยตรงจากเบราว์เซอร์ของผู้ใช้

<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 พร้อมกับปุ่มที่ปรับเปลี่ยนในแบบของคุณ เพื่อปรับปรุงอัตราการลงชื่อเข้าใช้

ปุ่ม &quot;ลงชื่อเข้าใช้ด้วย Google&quot; ป๊อปอัป
แบบแตะครั้งเดียว

สถานะการลงชื่อเข้าใช้ของผู้ใช้ไม่อัปเดตข้อความปุ่มจาก "ลงชื่อเข้าใช้" เป็น "ลงชื่อเข้าใช้" หลังจากให้คำยินยอมหรือเมื่อกลับมาเข้าชมแล้ว ปุ่มที่ปรับเปลี่ยนในแบบของคุณจะมีชื่อ อีเมล และรูปโปรไฟล์ของผู้ใช้

ในตัวอย่างการตรวจสอบสิทธิ์เท่านั้นนี้ ไลบรารี 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 ของผู้ใช้