ประเภทการลิงก์ OAuth รองรับขั้นตอน OAuth 2.0 มาตรฐานอุตสาหกรรม 2 ขั้นตอน ได้แก่ ขั้นตอนโดยนัย และรหัสการให้สิทธิ์ ในขั้นตอนการใช้โค้ดโดยนัย Google จะเปิดปลายทางการให้สิทธิ์ในเบราว์เซอร์ของผู้ใช้ หลังจากลงชื่อเข้าใช้สำเร็จ คุณจะส่งคืนโทเค็นเพื่อการเข้าถึงที่ใช้ได้นานให้ Google โทเค็นเพื่อการเข้าถึงนี้จะรวมอยู่ใน ทุกคำขอที่ส่งมาจาก Assistant ถึงการดำเนินการของคุณ
การลิงก์ OAuth คือโซลูชันการลิงก์บัญชีที่แนะนำในกรณีต่อไปนี้
- คุณใช้เซิร์ฟเวอร์ OAuth 2.0 อยู่แล้วและไม่สามารถขยายปลายทางการแลกเปลี่ยนโทเค็นเพื่อเพิ่มการรองรับโปรโตคอลของ Google สำหรับการลิงก์อัตโนมัติและการสร้างบัญชีจากโทเค็นรหัส (เช่น เพิ่มพารามิเตอร์
intent=get
และintent=create
ในคำขอไปยังปลายทางนี้)
โปรดดูหน้าเลือกประเภทการลิงก์บัญชีเพื่อยืนยันว่าการลิงก์ OAuth เป็นโซลูชันที่เหมาะกับคุณ
คำสำคัญ
ก่อนที่จะอ่านข้อมูลเกี่ยวกับวิธีการทำงานของการลิงก์ OAuth โปรดศึกษาคำศัพท์ต่อไปนี้
user.verificationStatus
: พร็อพเพอร์ตี้ที่ระบบกำหนดเพื่อระบุว่าเซสชันปัจจุบันมีผู้ใช้ที่ยืนยันแล้วหรือไม่user.accountLinkingStatus
: พร็อพเพอร์ตี้ที่ระบบกำหนดเพื่อระบุว่าผู้ใช้ในเซสชันปัจจุบันมีข้อมูลประจำตัวที่ลิงก์หรือไม่โหมดของระบบการลิงก์บัญชี: โหมดที่กำหนดไว้ล่วงหน้าซึ่งใช้ขั้นตอนการยืนยันสำหรับการลิงก์บัญชีและปรับแต่งให้เหมาะกับกรณีการใช้งานที่เฉพาะเจาะจงได้
ขั้นตอนรหัสการให้สิทธิ์: ระหว่างขั้นตอน OAuth 2.0 นี้ Google จะเปิดปลายทางการให้สิทธิ์ในเบราว์เซอร์ของผู้ใช้ หากลงชื่อเข้าใช้สำเร็จ บริการจะสร้างรหัสการให้สิทธิ์และส่งคืนให้ Google Google จะส่งรหัสการให้สิทธิ์นี้ไปยังปลายทางการแลกเปลี่ยนโทเค็น ซึ่งจะยืนยันความถูกต้องของรหัส แล้วจึงส่งโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช
ขั้นตอนนี้ต้องมีปลายทาง 2 แห่ง ดังนี้
- ปลายทางการให้สิทธิ์: ปลายทางที่มีหน้าที่ในการค้นหาหรือขอความยินยอมจากผู้ใช้สำหรับการเข้าถึงข้อมูล ปลายทางนี้จะทำสิ่งต่อไปนี้
- แสดง UI การลงชื่อเข้าใช้แก่ผู้ใช้ที่ยังไม่ได้ลงชื่อเข้าใช้
- บันทึกความยินยอมในการเข้าถึงที่ขอในรูปแบบของรหัสการให้สิทธิ์ที่มีอายุสั้น
- ปลายทางการแลกเปลี่ยนโทเค็น: ปลายทางนี้ใช้เพื่อรับสตริงที่เข้ารหัสที่เรียกว่าโทเค็น ซึ่งอนุญาตให้ผู้ใช้การดำเนินการเข้าถึงบริการของคุณ ปลายทางนี้รับผิดชอบต่อการแลกเปลี่ยน 2 ประเภท ดังนี้
- แลกเปลี่ยนรหัสการให้สิทธิ์เป็นโทเค็นการรีเฟรชที่ใช้ได้นานกับโทเค็นเพื่อการเข้าถึงที่มีอายุสั้น ซึ่งการแลกเปลี่ยนนี้จะเกิดขึ้นเมื่อผู้ใช้ทำตามขั้นตอนการลิงก์บัญชี
- แลกเปลี่ยนโทเค็นการรีเฟรชที่ใช้ได้นานกับโทเค็นเพื่อการเข้าถึงที่ใช้ได้ระยะสั้น การแลกเปลี่ยนนี้เกิดขึ้นเมื่อ Google ต้องการโทเค็นเพื่อการเข้าถึงใหม่ เนื่องจากโทเค็นดังกล่าวหมดอายุแล้ว
- ปลายทางการให้สิทธิ์: ปลายทางที่มีหน้าที่ในการค้นหาหรือขอความยินยอมจากผู้ใช้สำหรับการเข้าถึงข้อมูล ปลายทางนี้จะทำสิ่งต่อไปนี้
โฟลว์ของรหัสโดยนัย: ระหว่างขั้นตอน OAuth 2.0 นี้ Google จะเปิดปลายทางการให้สิทธิ์ในเบราว์เซอร์ของผู้ใช้ หากลงชื่อเข้าใช้สำเร็จ คุณจะต้องส่ง โทเค็นเพื่อการเข้าถึงที่ใช้ได้มานานให้ Google โทเค็นเพื่อการเข้าถึงนี้จะรวมอยู่ใน คำขอทุกรายการที่ส่งจาก Assistant ไปยังการดำเนินการของคุณ ขั้นตอนนี้ต้องใช้เพียงปลายทางการให้สิทธิ์เท่านั้น
โทเค็นเพื่อการเข้าถึง: โทเค็นที่ให้สิทธิ์บริการของคุณในการเข้าถึงข้อมูลบางส่วนของผู้ใช้ โทเค็นเพื่อการเข้าถึงจะเชื่อมโยงกับผู้ใช้แต่ละราย และไม่ควรคาดเดาได้
โทเค็นเพื่อการเข้าถึง: โทเค็นที่แลกเปลี่ยนกับโทเค็นเพื่อการเข้าถึงใหม่เมื่อโทเค็นเพื่อการเข้าถึงที่มีอายุสั้นหมดอายุ
วิธีการทำงาน
ส่วนนี้จะอธิบายขั้นตอนทั่วไปสำหรับรหัสการให้สิทธิ์ OAuth และขั้นตอนโดยนัย ส่วนขั้นตอนการลิงก์ OAuth ต่อไปนี้จะอธิบายขั้นตอนต่างๆ ที่อาจเกิดขึ้นกับ OAuth
การทำงานของรหัสการให้สิทธิ์สามารถสรุปได้ดังนี้
- การดำเนินการของคุณถามผู้ใช้ว่าต้องการลิงก์บัญชีกับบริการของคุณหรือไม่
- หลังจากที่ผู้ใช้ตกลงที่จะลิงก์บัญชีแล้ว Google จะเปิดปลายทางการให้สิทธิ์ในเบราว์เซอร์ของผู้ใช้ หากขั้นตอนเริ่มต้นในอุปกรณ์แบบเสียงเท่านั้นสำหรับการดำเนินการ Google จะโอนการดำเนินการไปยังโทรศัพท์
- ผู้ใช้ลงชื่อเข้าใช้ (หากยังไม่ได้ลงชื่อเข้าใช้) และให้สิทธิ์ Google ในการเข้าถึงข้อมูลด้วย API ของคุณ (หากผู้ใช้ยังไม่ได้ให้สิทธิ์)
- บริการจะสร้างรหัสการให้สิทธิ์และส่งคืนไปยัง Google โดยเปลี่ยนเส้นทางเบราว์เซอร์ของผู้ใช้กลับไปยัง Google โดยมีรหัสการให้สิทธิ์แนบไปกับคำขอ
- Google จะส่งรหัสการให้สิทธิ์ไปยังปลายทางการแลกเปลี่ยนโทเค็น ซึ่งจะยืนยันความถูกต้องของโค้ดและแสดงผลโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช โทเค็นเพื่อการเข้าถึงคือโทเค็นที่มีอายุสั้นที่บริการของคุณยอมรับเป็นข้อมูลเข้าสู่ระบบเพื่อเข้าถึง API โทเค็นการรีเฟรชเป็นโทเค็นที่มีอายุการใช้งานยาวนานซึ่ง Google สามารถจัดเก็บและใช้เพื่อให้ได้โทเค็นเพื่อการเข้าถึงใหม่เมื่อโทเค็นดังกล่าวหมดอายุ
- หลังจากที่ผู้ใช้ดำเนินการตามขั้นตอนการลิงก์บัญชีเสร็จแล้ว ทุกคำขอที่ตามมาที่ส่งจาก Assistant ไปยังเว็บฮุค Fulfillment ของคุณจะมีโทเค็นเพื่อการเข้าถึง
ขั้นตอนของโค้ดโดยนัยสรุปได้ดังนี้
- การดำเนินการจะถามผู้ใช้ว่าต้องการลิงก์บัญชีกับบริการของคุณหรือไม่
- หลังจากที่ผู้ใช้ตกลงที่จะลิงก์บัญชีแล้ว Google จะเปิดปลายทางการให้สิทธิ์ในเบราว์เซอร์ของผู้ใช้
- ผู้ใช้ลงชื่อเข้าใช้ (หากยังไม่ได้ลงชื่อเข้าใช้) และให้สิทธิ์ Google ในการเข้าถึงข้อมูลด้วย API ของคุณ (หากผู้ใช้ยังไม่ได้ให้สิทธิ์)
- บริการของคุณจะสร้างโทเค็นเพื่อการเข้าถึงและส่งไปยัง Google โดยการเปลี่ยนเส้นทางเบราว์เซอร์ของผู้ใช้กลับไปยัง Google ด้วยโทเค็นเพื่อการเข้าถึงที่แนบไปกับคำขอ
- หลังจากที่ผู้ใช้ทำตามขั้นตอนการลิงก์บัญชีเสร็จแล้ว Google จะเรียก API ของบริการและแนบโทเค็นเพื่อการเข้าถึงไปกับคำขอแต่ละรายการ บริการของคุณจะช่วยยืนยันว่าโทเค็นเพื่อการเข้าถึงได้ให้สิทธิ์ Google ในการเข้าถึง API และทำการเรียก API ให้เสร็จสิ้น
ขั้นตอนพื้นฐานของรหัสการให้สิทธิ์มีดังนี้
- การดำเนินการของคุณถามผู้ใช้ว่าต้องการลิงก์บัญชีกับบริการของคุณหรือไม่
- หลังจากที่ผู้ใช้ตกลงที่จะลิงก์บัญชีแล้ว Google จะเปิดปลายทางการให้สิทธิ์ในเบราว์เซอร์ของผู้ใช้ หากขั้นตอนเริ่มต้นในอุปกรณ์แบบเสียงเท่านั้นสำหรับการดำเนินการ Google จะโอนการดำเนินการไปยังโทรศัพท์
- ผู้ใช้ลงชื่อเข้าใช้ (หากยังไม่ได้ลงชื่อเข้าใช้) และให้สิทธิ์ Google ในการเข้าถึงข้อมูลด้วย API ของคุณ (หากผู้ใช้ยังไม่ได้ให้สิทธิ์)
- บริการจะสร้างรหัสการให้สิทธิ์และส่งคืนไปยัง Google โดยการเปลี่ยนเส้นทางเบราว์เซอร์ของผู้ใช้กลับไปยัง Google โดยมีรหัสการให้สิทธิ์ระยะสั้นที่แนบมากับคำขอ
- Google จะส่งรหัสการให้สิทธิ์ไปยังปลายทางการแลกเปลี่ยนโทเค็น ซึ่งจะยืนยันความถูกต้องของโค้ดและแสดงผลโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช โทเค็นเพื่อการเข้าถึงคือโทเค็นที่มีอายุสั้นที่บริการของคุณยอมรับเป็นข้อมูลเข้าสู่ระบบเพื่อเข้าถึง API โทเค็นการรีเฟรชเป็นโทเค็นที่มีอายุการใช้งานยาวนานซึ่ง Google สามารถจัดเก็บและใช้เพื่อให้ได้โทเค็นเพื่อการเข้าถึงใหม่เมื่อโทเค็นดังกล่าวหมดอายุ
- หลังจากที่ผู้ใช้ดำเนินการตามขั้นตอนการลิงก์บัญชีเสร็จแล้ว ทุกคำขอที่ตามมาที่ส่งจาก Assistant ไปยังเว็บฮุค Fulfillment ของคุณจะมีโทเค็นเพื่อการเข้าถึง
ขั้นตอนการลิงก์ OAuth
หัวข้อนี้จะอธิบายขั้นตอนต่างๆ เกี่ยวกับการลิงก์ OAuth
แต่ละขั้นตอนจะมีขั้นตอนทั่วไปเหล่านี้หลังจากที่ผู้ใช้เรียกใช้การดำเนินการของคุณ
ในขั้นตอนด้านบน คุณจะเปลี่ยนไปใช้โหมดระบบการลิงก์บัญชีและให้เหตุผลที่กำหนดเอง Assistant จะถามผู้ใช้ว่าต้องการลิงก์บัญชีกับบริการของคุณหรือไม่ และแสดงหน้าจอที่มีสิทธิ์ที่ขอ เมื่อผู้ใช้ยินยอม Google จะเปลี่ยนเส้นทางผู้ใช้ไปยังปลายทางการให้สิทธิ์ของบริการในเบราว์เซอร์ ผู้ใช้จะลงชื่อเข้าใช้ (หรือสร้างบัญชีใหม่ ทั้งนี้ขึ้นอยู่กับการกำหนดค่าของคุณ) และให้สิทธิ์การดำเนินการของคุณเข้าถึงข้อมูลของผู้ใช้
ขั้นตอนหลังจากจุดนี้จะแตกต่างกันไปขึ้นอยู่กับว่าคุณใช้ขั้นตอนโดยนัยหรือขั้นตอนรหัสการให้สิทธิ์หรือไม่ ขั้นตอนดังกล่าวมีอธิบายไว้ในส่วนต่อไปนี้
ขั้นตอนที่ 1: ผู้ใช้ลงชื่อเข้าใช้ด้วยขั้นตอนโดยนัย
หลังจากที่ผู้ใช้ลงชื่อเข้าสู่ระบบและข้อมูลเข้าสู่ระบบแล้ว บริการของคุณจะสร้างโทเค็นเพื่อการเข้าถึงที่ใช้ได้นานและส่งกลับไปยัง Google ณ จุดนี้ ข้อมูลประจำตัวของผู้ใช้ในการดำเนินการของคุณจะลิงก์กับบัญชีที่ผู้ใช้ลงชื่อเข้าใช้ และโทเค็นเพื่อการเข้าถึงจะแนบไปกับการเรียก API แต่ละรายการที่ Google ดำเนินการกับ API ของบริการของคุณ
ขั้นตอนที่ 2: ผู้ใช้ลงชื่อเข้าใช้ด้วยขั้นตอนการใช้รหัสการให้สิทธิ์
หลังจากที่ผู้ใช้เข้าสู่ระบบและยืนยันข้อมูลเข้าสู่ระบบแล้ว บริการจะสร้างรหัสการให้สิทธิ์และส่งคืนให้กับ Google
ระบบจะส่งรหัสการให้สิทธิ์นี้ไปยังปลายทางการแลกเปลี่ยนโทเค็น ซึ่งจะส่งคืนทั้งโทเค็นเพื่อการเข้าถึงและโทเค็นการรีเฟรช เมื่อถึงจุดนี้ ข้อมูลประจำตัวของผู้ใช้ในการดำเนินการของคุณจะลิงก์กับบัญชีใดก็ตามที่ผู้ใช้ลงชื่อเข้าใช้ และทุกคำขอต่อมาที่ส่งจาก Assistant ไปยังการดำเนินการของคุณจะมีโทเค็นเพื่อการเข้าถึง