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

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

หากลูกค้าของคุณใช้ไลบรารีของไคลเอ็นต์ Google API สําหรับ JavaScript หรือไลบรารีเก่าอื่นๆ สําหรับการให้สิทธิ์ โปรดดูข้อมูลเพิ่มเติมในย้ายข้อมูลไปยังบริการข้อมูลประจําตัวของ Google

การตรวจสอบสิทธิ์และการให้สิทธิ์

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

เช่นเดียวกับไลบรารีแพลตฟอร์มการลงชื่อเข้าใช้ Google ตัวเก่าไลบรารีบริการข้อมูลประจําตัวของ Google ใหม่ที่สร้างขึ้นเพื่อรองรับทั้งกระบวนการตรวจสอบสิทธิ์และการให้สิทธิ์

แต่ไลบรารีใหม่จะแยกกระบวนการทั้งสองออกจากกันเพื่อลดความซับซ้อนของนักพัฒนาซอฟต์แวร์ในการผสานรวมบัญชี Google เข้ากับแอปของคุณ

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

หากกรณีการใช้งานของคุณมีสิทธิ์ โปรดอ่านวิธีการทํางานของการให้สิทธิ์ผู้ใช้และย้ายข้อมูลไปยัง Google Identity Services เพื่อให้มั่นใจว่าแอปพลิเคชันของคุณใช้ API ใหม่ที่ได้รับการปรับปรุง

มีอะไรเปลี่ยนแปลงบ้าง

ไลบรารีบริการ Google Identity ใหม่มอบความสามารถในการใช้งานที่ดีขึ้นให้กับผู้ใช้ ไฮไลต์ต่างๆ ได้แก่

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

สําหรับนักพัฒนาซอฟต์แวร์ สิ่งที่เรามุ่งเน้นคือลดความซับซ้อน ปรับปรุงการรักษาความปลอดภัย และทําให้การผสานรวมเป็นไปได้ง่ายและรวดเร็วที่สุด ซึ่งตัวอย่างการปรับปรุงมีดังนี้

  • ตัวเลือกในการเพิ่มเนื้อหาที่ผู้ใช้ลงชื่อเข้าใช้ในเว็บไซต์แบบคงที่โดยใช้เพียง HTML
  • การแยกการตรวจสอบสิทธิ์การลงชื่อเข้าใช้ออกจากการให้สิทธิ์และการแชร์ข้อมูลผู้ใช้ ความซับซ้อนของการผสานรวม OAuth2 นั้นไม่จําเป็นต้องเพียงแค่ทําให้ผู้ใช้ลงชื่อเข้าใช้เว็บไซต์อีกต่อไป
  • ระบบรองรับทั้งโหมดป๊อปอัปและเปลี่ยนเส้นทางอยู่ แต่โครงสร้างพื้นฐาน OAuth2 ของ Google จะเปลี่ยนเส้นทางเข้าสู่ระบบเข้าสู่ระบบของเซิร์ฟเวอร์แบ็กเอนด์
  • ฟังก์ชันการทํางานจากทั้ง Google Identity และไลบรารี Google API JavaScript ที่อยู่เดิมมาไว้ในไลบรารีใหม่แห่งเดียว
  • สําหรับการตอบกลับการลงชื่อเข้าใช้ ตอนนี้คุณต้องตัดสินใจว่าจะใช้สัญญาและโดยอ้อมผ่านฟังก์ชันรูปแบบ Getter หรือไม่เพื่อให้ความเรียบง่าย

ตัวอย่างการย้ายข้อมูลการลงชื่อเข้าใช้

หากคุณกําลังย้ายข้อมูลจากปุ่ม Google Sign-In ที่มีอยู่และสนใจที่จะลงชื่อเข้าใช้ผู้ใช้ไปยังเว็บไซต์ของคุณเท่านั้น การเปลี่ยนแปลงที่ตรงไปตรงมาที่สุดคือการอัปเดตปุ่มใหม่ที่ปรับเปลี่ยนในแบบของคุณ ซึ่งทําได้โดยการสลับไลบรารี JavaScript และอัปเดตฐานของโค้ดเพื่อใช้ออบเจ็กต์การลงชื่อเข้าใช้ใหม่

ไลบรารีและการกําหนดค่า

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

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

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

ในตัวอย่างการตรวจสอบสิทธิ์เท่านั้นนี้ ไลบรารี accounts.google.com/gsi/client ใหม่, g_id_signin คลาส และออบเจ็กต์ g_id_onload จะมาแทนที่ไลบรารี apis.google.com/js/platform.js และออบเจ็กต์ g-signin2 เก่า

นอกจากการแสดงผลปุ่มใหม่ที่ปรับเปลี่ยนในแบบของคุณแล้ว โค้ดตัวอย่างยังแสดงป๊อปอัป One Tap ใหม่อีกด้วย เมื่อใดก็ตามที่คุณแสดงปุ่มในแบบของคุณ เราขอแนะนําให้แสดงป๊อปอัป One Tap เพื่อลดการรบกวนผู้ใช้ในระหว่างการลงชื่อสมัครใช้และการลงชื่อเข้าใช้ให้น้อยที่สุด

แม้ว่าจะไม่แนะนําเนื่องจากการลงชื่อเข้าใช้ที่มีความราบรื่นเพิ่มขึ้น แต่ปุ่มใหม่ที่ปรับเปลี่ยนในแบบของคุณจะแสดงได้เพียงลําพังโดยไม่ต้องแสดงกล่องโต้ตอบ "การแตะครั้งเดียว" พร้อมกัน โดยตั้งค่าแอตทริบิวต์ data-auto_prompt เป็น false

HTML และ JavaScript API

ตัวอย่างข้างต้นแสดงวิธีใช้ HTML API ใหม่เพื่อเพิ่มการลงชื่อเข้าใช้ในเว็บไซต์ หรือจะใช้ JavaScript API ซึ่งมีฟังก์ชันการทํางานที่เทียบเท่า หรือผสมผสาน API แบบ HTML และ JavaScript ในเว็บไซต์ก็ได้

หากต้องการดูตัวเลือกการปรับแต่งปุ่มแบบอินเทอร์แอกทีฟ เช่น ประเภทโค้ดเรียกกลับและแอตทริบิวต์ เช่น สี ขนาด รูปร่าง ข้อความ และธีม ให้เลือกที่โปรแกรมสร้างโค้ด ซึ่งสามารถใช้เพื่อเปรียบเทียบตัวเลือกต่างๆ ได้อย่างรวดเร็วและสร้างข้อมูลโค้ด HTML สําหรับใช้ในเว็บไซต์ของคุณ

ลงชื่อเข้าใช้จากหน้าใดก็ได้ด้วย One Tap

One Tap เป็นช่องทางใหม่ที่ราบรื่นสําหรับให้ผู้ใช้ลงชื่อสมัครใช้หรือลงชื่อเข้าใช้เว็บไซต์ ซึ่งช่วยให้ผู้ใช้ลงชื่อเข้าใช้ได้โดยตรงจากหน้าใดก็ได้ในเว็บไซต์ และทําให้ผู้ใช้ไม่ต้องเข้าไปยังหน้าสําหรับลงชื่อเข้าใช้โดยเฉพาะ พูดง่ายๆ คือวิธีนี้ช่วยลดอุปสรรคในการลงชื่อเข้าใช้และการลงชื่อเข้าใช้ได้ง่าย โดยให้ผู้ใช้ลงชื่อสมัครใช้และลงชื่อเข้าใช้จากหน้าเว็บอื่นๆ ที่มีหน้าการเข้าสู่ระบบได้อย่างยืดหยุ่น

หากต้องการเปิดการลงชื่อเข้าใช้จากหน้าเว็บใดก็ตาม เราขอแนะนําให้ใส่ g_id_onload ไว้ในส่วนหัว ส่วนท้าย หรือออบเจ็กต์อื่นๆ ที่ใช้ร่วมกันซึ่งอยู่ทั่วทั้งเว็บไซต์

เราขอแนะนําให้เพิ่ม g_id_signin ซึ่งแสดงปุ่มลงชื่อเข้าใช้ที่ปรับเปลี่ยนในแบบของคุณ โดยเฉพาะในหน้าเข้าสู่ระบบหรือหน้าบัญชีผู้ใช้เท่านั้น ให้ผู้ใช้เลือกลงชื่อสมัครใช้หรือลงชื่อเข้าใช้โดยแสดงปุ่มพร้อมกับปุ่มผู้ให้บริการข้อมูลประจําตัวอื่นๆ แบบรวมศูนย์ ตลอดจนชื่อผู้ใช้และรหัสผ่านในการป้อนรหัสผ่าน

การตอบกลับโทเค็น

การลงชื่อเข้าใช้ของผู้ใช้ไม่ได้กําหนดให้คุณต้องเข้าใจหรือทํางานกับรหัสการให้สิทธิ์ OAuth2, โทเค็นเพื่อการเข้าถึง หรือรีเฟรชโทเค็นอีกต่อไป แต่ระบบจะใช้โทเค็นรหัส 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 แบบเก่าจะไม่ถูกใช้งานอีกต่อไป

ไลบรารีบริการ Google Identity ใหม่อาจตั้งค่าคุกกี้ข้ามโดเมนเหล่านี้ตามตัวเลือกการกําหนดค่าของคุณ

  • g_state จัดเก็บสถานะการออกจากระบบของผู้ใช้และมีการตั้งค่าเมื่อใช้ป๊อปอัป "One Tap" หรือ "การลงชื่อเข้าใช้อัตโนมัติ"
  • g_csrf_token เป็นคุกกี้แบบส่งซ้ําที่ใช้เพื่อป้องกันการโจมตีโดยใช้ CSRF และจะมีการตั้งค่าเมื่อมีการเรียกใช้ปลายทางการเข้าสู่ระบบ สามารถกําหนดค่า URI การเข้าสู่ระบบของคุณอย่างชัดแจ้ง หรือกําหนดค่าเริ่มต้นเป็น URI ของหน้าปัจจุบัน ระบบอาจเรียกใช้ปลายทางการเข้าสู่ระบบภายใต้เงื่อนไขเหล่านี้เมื่อใช้สิ่งต่อไปนี้

    • HTML API ที่มี data-ux_mode=redirect หรือเมื่อตั้งค่า data-login_uri ไว้ หรือ

    • JavaScript API ที่มี ux_mode=redirect และในกรณีที่ไม่ได้ใช้ google.accounts.id.prompt() ในการแสดง One Tap หรือการลงชื่อเข้าใช้อัตโนมัติ

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

หากคุณจัดการโดเมนหรือโดเมนย่อยหลายโดเมน โปรดดูแสดง 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 แทนที่ด้วยแบบเก่า
ออบเจ็กต์ Google Authenticator และวิธีการที่เกี่ยวข้องมีดังนี้
GoogleAuth.attachClickHandler() IdConfiguration.callback สําหรับ JS และ HTML data-callback แทนที่ด้วยแบบเก่า
GoogleAuth.currentUser.get() การตอบกลับเข้าสู่ระบบ ใช้ CredentialResponse แทน ไม่ต้องใช้แล้ว
GoogleAuth.currentUser.listen() นำออก สถานะการลงชื่อเข้าใช้ปัจจุบันของผู้ใช้ใน Google ไม่พร้อมใช้งาน ผู้ใช้ต้องลงชื่อเข้าใช้ Google เพื่อดูคํายินยอมและช่วงเวลาลงชื่อเข้าใช้ ช่อง select_by ใน CredentialResponse จะใช้เพื่อระบุผลลัพธ์ของความยินยอมของผู้ใช้พร้อมกับวิธีลงชื่อเข้าใช้ที่ใช้
GoogleAuth.disconnect() google.accounts.id.revoke แทนที่ด้วยแบบเก่า การเพิกถอนยังอาจเกิดขึ้นจาก https://myaccount.google.com/permissions อีกด้วย
GoogleAuth.grantOfflineAccess() นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
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 เลิกใช้งานแล้ว
ออบเจ็กต์ Google User และวิธีที่เกี่ยวข้องมีดังนี้
GoogleUser.disconnect() google.accounts.id.revoke แทนที่ด้วยแบบเก่า การเพิกถอนยังอาจเกิดขึ้นจาก https://myaccount.google.com/permissions อีกด้วย
GoogleUser.getAuthResponse()
GoogleUser.getBasicProfile() การตอบกลับเข้าสู่ระบบ ใช้ credential และฟิลด์ย่อยโดยตรงแทน BasicProfile เมธอด
GoogleUser.getGrantedScopes() นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
GoogleUser.getHostedDomain() การตอบกลับเข้าสู่ระบบ แต่ให้ใช้ credential.hd โดยตรงแทน
GoogleUser.getId() การตอบกลับเข้าสู่ระบบ แต่ให้ใช้ credential.sub โดยตรงแทน
GoogleUser-grantOfflineAccess() นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
GoogleUser-grant() นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
GoogleUser.hasGrantedScopes() นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
GoogleUser.isSignedIn() นำออก สถานะการลงชื่อเข้าใช้ปัจจุบันของผู้ใช้ใน Google ไม่พร้อมใช้งาน ผู้ใช้ต้องลงชื่อเข้าใช้ Google เพื่อดูคํายินยอมและช่วงเวลาลงชื่อเข้าใช้
GoogleUser.reloadAuthResponse() นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
ออบเจ็กต์ gapi.auth2 และวิธีการที่เกี่ยวข้อง
gapi.auth2.AuthorizeConfig นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
ออบเจ็กต์ gapi.auth2.AuthorizeResponse นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
ออบเจ็กต์ gapi.auth2.AuthResponse นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
gapi.auth2.authorized() นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
gapi.auth2.ClientConfig() นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
gapi.auth2.getAuthInstance() นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
gapi.auth2.init() นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
ออบเจ็กต์ gapi.auth2.OfflineAccessOptions นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
ออบเจ็กต์ gapi.auth2.SignInOptions นำออก โทเค็นรหัสได้แทนที่โทเค็นและขอบเขตการเข้าถึง OAuth2
ออบเจ็กต์ gapi.signin2 และวิธีการที่เกี่ยวข้อง
gapi.signin2.render() นำออก การโหลด HTML DOM ขององค์ประกอบ g_id_signin หรือการเรียก JS ไปยัง google.accounts.id.renderButton จะทริกเกอร์ให้ผู้ใช้ลงชื่อเข้าใช้บัญชี Google