ภาพรวม

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

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

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

กรณีการใช้งาน

เหตุผลบางประการในการใช้การลิงก์บัญชี Google มีดังนี้

  • แชร์ข้อมูลของผู้ใช้จากแพลตฟอร์มของคุณกับแอปและบริการของ Google

  • เล่นเนื้อหาวิดีโอและภาพยนตร์โดยใช้ Google TV

  • จัดการและควบคุมอุปกรณ์ที่เชื่อมต่อกับ Google Smart Home โดยใช้แอป Google Home และ Google Assistant โดยพูดว่า "Ok Google เปิดไฟ"

  • สร้างประสบการณ์การใช้งานและฟังก์ชันการทำงานของ Google Assistant ที่ผู้ใช้กำหนดเองด้วยการดำเนินการแบบการสนทนา เช่น "Ok Google สั่งกาแฟจาก Starbucks แบบเดิมให้ฉันหน่อย"

  • อนุญาตให้ผู้ใช้รับรางวัลด้วยการดูสตรีมแบบสดที่มีสิทธิ์บน YouTube หลังจากที่ลิงก์บัญชี Google กับบัญชีพาร์ทเนอร์ด้านรางวัล

  • ป้อนข้อมูลใหม่ล่วงหน้าในบัญชีระหว่างการลงชื่อสมัครใช้ด้วยข้อมูลที่แชร์โดยได้รับความยินยอมจากโปรไฟล์บัญชี Google

ฟีเจอร์ที่รองรับ

การลิงก์บัญชี Google รองรับฟีเจอร์ต่อไปนี้

  • แชร์ข้อมูลได้อย่างรวดเร็วและง่ายดายโดยใช้ขั้นตอนการลิงก์ OAuth โดยนัย

  • เพิ่มความปลอดภัยด้วยโฟลว์รหัสการให้สิทธิ์การลิงก์ OAuth

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

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

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

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

ขั้นตอนการลิงก์บัญชี

ขั้นตอนการลิงก์บัญชี Google มี 3 ขั้นตอน ซึ่งทั้งหมดอิงตาม OAuth และกำหนดให้คุณต้องจัดการหรือควบคุมปลายทางการให้สิทธิ์และการแลกเปลี่ยนโทเค็นที่เป็นไปตามข้อกำหนด OAuth 2.0

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

การลิงก์ OAuth ("Web OAuth")

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

การลิงก์ OAuth รองรับรหัสการให้สิทธิ์และโฟลว์ OAuth โดยนัย บริการต้องโฮสต์ปลายทางการให้สิทธิ์ที่เป็นไปตาม OAuth 2.0 สำหรับโฟลว์แบบไม่เจาะจงปลายทาง และต้องแสดงทั้งปลายทางการให้สิทธิ์และโทเค็นการแลกเปลี่ยนเมื่อใช้โฟลว์รหัสการให้สิทธิ์

รูปที่ 1 การลิงก์บัญชีในโทรศัพท์ของผู้ใช้ด้วย OAuth สำหรับเว็บ

การลิงก์ App Flip ("App Flip") ที่ใช้ OAuth

ขั้นตอน OAuth ที่ส่งผู้ใช้ไปยังแอปเพื่อลิงก์

การลิงก์ App Flip ที่ใช้ OAuth แนะนำผู้ใช้ขณะที่ย้ายไปมาระหว่างแอปบนอุปกรณ์เคลื่อนที่ Android หรือ iOS ที่ยืนยันแล้วกับแพลตฟอร์มของ Google เพื่อตรวจสอบการเปลี่ยนแปลงการเข้าถึงข้อมูลที่เสนอและให้ความยินยอมในการลิงก์บัญชีในแพลตฟอร์มกับบัญชี Google หากต้องการเปิดใช้ฟีเจอร์ App Flip บริการของคุณต้องรองรับการลิงก์ OAuth หรือการลิงก์ Google Sign-In ตาม OAuth โดยใช้ขั้นตอนรหัสการให้สิทธิ์

การพลิกแอปใช้ได้ทั้งใน Android และ iOS

วิธีการทํางาน:

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

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

รูปที่ 2 การลิงก์บัญชีในโทรศัพท์ของผู้ใช้ด้วยฟีเจอร์ App Flip

การลิงก์ที่ปรับปรุงใหม่โดยใช้ OAuth ("ปรับปรุงแล้ว")

การลิงก์ที่มีประสิทธิภาพมากขึ้นของ Google Sign-In ที่ใช้ OAuth จะเพิ่ม Google Sign-In ไว้ด้านบนของการลิงก์ OAuth ซึ่งช่วยให้ผู้ใช้ลิงก์กระบวนการลิงก์ให้เสร็จสมบูรณ์ได้โดยไม่ต้องออกจากแพลตฟอร์ม Google จึงช่วยลดความยุ่งยากและอัตราการหยุดกลางคัน การลิงก์ที่มีประสิทธิภาพยิ่งขึ้นตาม OAuth มอบประสบการณ์การใช้งานที่ดีที่สุดแก่ผู้ใช้ด้วยการลงชื่อเข้าใช้ การสร้างบัญชี และการลิงก์บัญชีอย่างราบรื่น โดยรวม Google Sign-In เข้ากับการลิงก์ OAuth บริการของคุณต้องรองรับปลายทางการให้สิทธิ์และการแลกเปลี่ยนโทเค็นที่เป็นไปตาม OAuth 2.0 นอกจากนี้ปลายทางการแลกเปลี่ยนโทเค็นต้องรองรับการยืนยัน JSON Web Token (JWT) และใช้ความตั้งใจ check create และ get

วิธีการทํางาน:

Google จะยืนยันบัญชีผู้ใช้และส่งข้อมูลนี้ให้คุณ

  • หากมีบัญชีสำหรับผู้ใช้ในฐานข้อมูลของคุณ แสดงว่าผู้ใช้ลิงก์บัญชี Google กับบัญชีของตนในบริการของคุณสำเร็จแล้ว
  • หากไม่มีบัญชีของผู้ใช้ในฐานข้อมูล ผู้ใช้จะสร้างบัญชีของบุคคลที่สามใหม่โดยใช้ข้อมูลที่ยืนยันซึ่ง Google มีให้ ได้แก่ อีเมล ชื่อ และรูปโปรไฟล์ หรือเลือกลงชื่อเข้าใช้และลิงก์กับอีเมลอื่นก็ได้ (ซึ่งจะต้องลงชื่อเข้าใช้บริการผ่าน Web OAuth)

รูปที่ 3 การลิงก์บัญชีในโทรศัพท์ของผู้ใช้ด้วยการลิงก์แบบมีประสิทธิภาพ

คุณควรใช้ขั้นตอนใด

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

การทำงานกับโทเค็น

การลิงก์บัญชี Google เป็นไปตามมาตรฐานอุตสาหกรรม OAuth 2.0

คุณออกโทเค็นเพื่อการเข้าถึงให้ Google สำหรับบัญชี Google แต่ละบัญชีหลังจากที่เจ้าของบัญชียินยอมให้ลิงก์บัญชีและแชร์ข้อมูลของตน

令牌类型

OAuth 2.0 使用称为令牌的字符串在用户代理、客户端应用和 OAuth 2.0 服务器之间进行通信。

在账号关联期间,您可以使用三种类型的 OAuth 2.0 令牌:

  • 授权代码。一种短期有效的令牌,可用于交换访问令牌和刷新令牌。出于安全考虑,Google 会调用您的授权端点以获取一次性或非常短效的代码。

  • 访问令牌。授予持有者对资源的访问权限的令牌。为限制因丢失此令牌而导致的泄露风险,此令牌的有效期有限,通常会在大约一小时后过期。

  • 刷新令牌。一个长期有效的令牌,在访问令牌到期时可以交换为新的访问令牌。如果您的服务与 Google 集成,则此令牌由 Google 专门存储和使用。Google 会调用您的令牌交换端点,以便将刷新令牌换成访问令牌,后者会用于访问用户数据。

令牌处理

在使用令牌时,分片环境和客户端-服务器交换中的竞态条件可能会导致复杂的时间安排和错误处理场景。例如:

  • 您收到新的访问令牌请求,并发出新的访问令牌。同时,您会收到使用上一个未过期的访问令牌访问服务资源的请求。
  • Google 尚未收到(或从未收到)您的刷新令牌回复。与此同时,之前有效的刷新令牌会在 Google 发出的请求中使用。

由于集群中运行的异步服务、网络行为或其他原因,请求和响应可能会以任何顺序到达,也可能根本不会到达。

我们无法保证您和 Google 的令牌处理系统内部以及它们之间的共享状态是立即且完全一致的。在短时间内,多个有效、未过期的令牌可以在系统内部或不同系统之间共存。为了尽可能减少对用户的负面影响,我们建议您执行以下操作:

  • 接受未过期的访问令牌,即使已发出较新的令牌也是如此。
  • 使用刷新令牌轮替的替代方案。
  • 支持多个同时有效的访问令牌和刷新令牌。出于安全考虑,您应限制令牌数量和令牌生命周期。
维护和中断处理

在维护或意外停机期间,Google 可能无法调用您的授权或令牌交换端点来获取访问令牌和刷新令牌。

您的端点应返回 503 错误代码和空正文。在这种情况下,Google 会在有限的时间内重试失败的令牌交换请求。只要 Google 稍后能够获取刷新令牌和访问令牌,用户就不会看到失败的请求。

如果由用户发起,访问令牌请求失败会导致可见错误。如果使用隐式 OAuth 2.0 流程,用户将需要重试关联失败。

建议

您可以通过多种方法最大限度地降低维护影响。请考虑以下可选方案:

  • 维护现有服务,并将有限数量的请求路由到新更新的服务。请仅在确认预期功能后迁移所有请求。

  • 减少维护期间令牌请求的数量:

    • 将维护期限制为短于访问令牌有效期。

    • 暂时延长访问令牌生命周期:

      1. 将令牌生命周期延长到超过维护期。
      2. 等待访问令牌生命周期的两倍时间,以便用户将短时有效的令牌换成时长更长的令牌。
      3. 进入维护模式。
      4. 使用 503 错误代码和空正文响应令牌请求。
      5. 退出维护。
      6. 将令牌生命周期缩短为正常值。

การลงทะเบียนกับ Google

เราต้องการรายละเอียดการตั้งค่า OAuth 2.0 และต้องการแชร์ข้อมูลเข้าสู่ระบบเพื่อเปิดใช้การลิงก์บัญชี ดูรายละเอียดได้ที่การลงทะเบียน