ย้ายข้อมูลจาก 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 กับแอป

หากกรณีการใช้งานเกี่ยวข้องกับการตรวจสอบสิทธิ์เท่านั้น ให้อ่านหน้านี้ต่อ

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

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

ปุ่มลงชื่อเข้าใช้ด้วย Google One Tap
popup

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

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