ภาพรวม

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

  • ยอมรับโทเค็นการเข้าถึงที่ยังไม่หมดอายุแม้ว่าจะมีการออกโทเค็นที่ใหม่กว่าแล้วก็ตาม
  • ใช้ทางเลือกอื่นในการ รีเฟรช Token Rotation
  • รองรับการเข้าถึงและรีเฟรชโทเค็นหลายรายการพร้อมกัน เพื่อความปลอดภัยคุณควร จำกัด จำนวนโทเค็นและอายุการใช้งานของโทเค็น
การบำรุงรักษาและการจัดการไฟดับ

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

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

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

คำแนะนำ

มีวิธีแก้ไขมากมายเพื่อลดผลกระทบในการบำรุงรักษา บางตัวเลือกที่ควรพิจารณา:

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

  • ลดจำนวนคำขอโทเค็นระหว่างช่วงเวลาการบำรุงรักษา:

    • จำกัด ระยะเวลาการบำรุงรักษาให้น้อยกว่าอายุการใช้งานโทเค็นการเข้าถึง

    • เพิ่มอายุการใช้งานโทเค็นการเข้าถึงชั่วคราว:

      1. เพิ่มอายุการใช้งานโทเค็นให้มากกว่าระยะเวลาการบำรุงรักษา
      2. รอเป็นสองเท่าของอายุการใช้งานโทเค็นการเข้าถึงของคุณทำให้ผู้ใช้สามารถแลกเปลี่ยนโทเค็นที่มีอายุสั้นสำหรับโทเค็นที่มีระยะเวลานานขึ้น
      3. เข้าสู่การบำรุงรักษา
      4. ตอบสนองคำขอโทเค็นด้วยรหัสข้อผิดพลาด 503 และเนื้อความว่างเปล่า
      5. ออกจากการบำรุงรักษา
      6. ลดอายุการใช้งานโทเค็นกลับสู่สภาวะปกติ

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

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