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

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

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>

แสดงผล

ใช้ visual-attributes เพื่อปรับแต่งปุ่มลงชื่อเข้าใช้ด้วย Google ขนาด รูปร่าง สี แสดงป๊อปอัป One Tap พร้อมปุ่มที่ปรับเปลี่ยนในแบบของคุณ เพื่อปรับปรุงอัตราการลงชื่อเข้าใช้

ปุ่มลงชื่อเข้าใช้ด้วย 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 ของผู้ใช้