ภาพรวม

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

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

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

Use Case

เหตุผลบางประการในการใช้การลิงก์บัญชี 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 ในแพลตฟอร์มของคุณ ขอความยินยอมจากผู้ใช้ และแชร์ข้อมูลอย่างปลอดภัยด้วยการลิงก์ที่มีประสิทธิภาพยิ่งขึ้น

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

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

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

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

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

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

การลิงก์ OAuth ("OAuth ในเว็บ")

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

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

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

การลิงก์ App Flip ที่ใช้ OAuth ("การสลับแอป")

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

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

App Flip รองรับทั้ง Android และ iOS

วิธีการทำงาน

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

  • หากพบแอป ระบบจะ "พลิก" ผู้ใช้มายังแอปของคุณ แอปรวบรวมความยินยอมจากผู้ใช้เพื่อลิงก์บัญชีกับ Google จากนั้น "พลิกกลับ" ไปยังแพลตฟอร์มของ Google
  • หากไม่พบแอปหรือเกิดข้อผิดพลาดระหว่างกระบวนการลิงก์แอปแบบพลิก ระบบจะเปลี่ยนเส้นทางผู้ใช้ไปยังขั้นตอน OAuth ที่เพิ่มประสิทธิภาพหรือ 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) และใช้ Intent check, create และ get

วิธีการทำงาน

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

  • หากมีบัญชีอยู่แล้วสำหรับผู้ใช้ในฐานข้อมูลของคุณ ผู้ใช้จะลิงก์บัญชี Google ของตนกับบัญชีของผู้ใช้ในบริการของคุณ
  • หากไม่มีบัญชีสำหรับผู้ใช้ในฐานข้อมูลของคุณ ผู้ใช้สามารถสร้างบัญชี 3P ใหม่ที่มีข้อมูลที่ยืนยันที่ Google ให้ไว้ ซึ่งได้แก่ อีเมล ชื่อ และรูปโปรไฟล์ หรือเลือกลงชื่อเข้าใช้และลิงก์กับอีเมลอื่น (ซึ่งจะต้องให้ผู้ใช้ลงชื่อเข้าใช้บริการผ่าน 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 และแชร์ข้อมูลเข้าสู่ระบบเพื่อเปิดใช้การลิงก์บัญชี ดูรายละเอียดในการลงทะเบียน