Google Account Linking API

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

ข้อกำหนดเบื้องต้นและมาตรฐาน

หากต้องการโต้ตอบกับปลายทางของ Google เหล่านี้ให้สำเร็จ การผสานรวมของคุณต้อง เป็นไปตามมาตรฐานต่อไปนี้

  • OAuth 2.0: เป็นไปตาม RFC 6749
  • โทเค็นเว็บ JSON (JWT): เป็นไปตาม RFC 7519 (สำหรับการลิงก์ที่คล่องตัวและ RISC)
  • โทเค็นเหตุการณ์ความปลอดภัย: เป็นไปตาม RFC 8417 (สำหรับ RISC)
  • HTTPS: คำขอทั้งหมดต้องดำเนินการผ่านการเชื่อมต่อ HTTPS ที่ปลอดภัย

URI การเปลี่ยนเส้นทาง OAuth

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

  • URL: https://oauth-redirect.googleusercontent.com/r/YOUR_PARTNER_ID
  • URL แซนด์บ็อกซ์: https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PARTNER_ID

  • วิธี: GET (ใช้การเปลี่ยนเส้นทางของเบราว์เซอร์)

พารามิเตอร์คำขอ

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

พารามิเตอร์ คำอธิบาย
code (ต้องระบุสำหรับขั้นตอนรหัสการให้สิทธิ์) รหัสการให้สิทธิ์ ที่บริการของคุณสร้างขึ้น
state (ต้องระบุ) ค่าสถานะที่ไม่มีการแก้ไขซึ่งได้รับจาก Google ในตอนแรก
access_token (ต้องระบุสำหรับโฟลว์โดยนัย) โทเค็นเพื่อการเข้าถึงที่มีอายุยาวนาน ซึ่งบริการของคุณสร้างขึ้น
token_type (ต้องระบุสำหรับโฟลว์โดยนัย) ต้องเป็น bearer

การตอบกลับข้อผิดพลาด

หากคำขอไปยัง URI การเปลี่ยนเส้นทาง OAuth มีรูปแบบไม่ถูกต้อง คุณจะได้รับข้อผิดพลาด HTTP 400 Bad Request เนื้อหาการตอบกลับจะมีออบเจ็กต์ JSON ที่มีโครงสร้างดังต่อไปนี้

ช่อง คำอธิบาย
sendPostBody กำหนดว่า JS ควรเปลี่ยนเส้นทางไปยัง redirectUri ด้วย POST หรือไม่ โดยปกติแล้ว false ในสถานการณ์นี้
errorMessage ข้อความแสดงข้อผิดพลาดที่จะแสดงต่อไคลเอ็นต์เมื่อเปลี่ยนเส้นทางไม่สำเร็จ สำหรับชิ้นส่วนที่ขาดหายไป นี่คือ "A URI fragment or query string must be set."

การตอบกลับข้อผิดพลาดของ OAuth 2.0

หากผู้ใช้ปฏิเสธที่จะให้ความยินยอมหรือบริการของคุณพบข้อผิดพลาด บริการของคุณ ต้องเปลี่ยนเส้นทางผู้ใช้กลับไปยัง URI เปลี่ยนเส้นทาง OAuth พร้อมพารามิเตอร์ข้อผิดพลาด OAuth 2.0 มาตรฐาน (เช่น error=access_denied) Google จะ ประมวลผลพารามิเตอร์เหล่านี้และแสดงหน้าจอข้อผิดพลาดที่เหมาะสมต่อผู้ใช้

API ของ RISC (ไม่บังคับ)

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

  • URL: https://risc.googleapis.com/v1/events:publish
  • วิธีการ: POST
  • การตรวจสอบสิทธิ์: ต้องใช้โทเค็นบัญชีบริการของ Google ที่มีสิทธิ์ที่เหมาะสม
  • Content-Type: application/json

การอ้างสิทธิ์โทเค็นเหตุการณ์ด้านความปลอดภัย

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

อ้างสิทธิ์ คำอธิบาย
iss การอ้างสิทธิ์ของผู้ออกใบรับรอง: นี่คือ URL ที่คุณโฮสต์และแชร์กับ Google ระหว่างการลงทะเบียน
aud การอ้างสิทธิ์ของกลุ่มเป้าหมาย: ระบุว่า Google เป็นผู้รับ JWT ต้องตั้งค่าเป็น google_account_linking
jti การอ้างสิทธิ์รหัส JWT: นี่คือรหัสที่ไม่ซ้ำกันซึ่งคุณสร้างขึ้นสำหรับการดำเนินการด้านความปลอดภัยทุกรายการ
iat การอ้างสิทธิ์ "ออกเมื่อ": นี่คือค่า NumericDate ที่แสดงเวลาที่สร้างโทเค็นการดำเนินการด้านความปลอดภัยนี้
toe เวลาของการอ้างสิทธิ์เหตุการณ์: นี่คือค่าNumericDateที่ไม่บังคับซึ่งแสดงเวลาที่เพิกถอนโทเค็น
exp การอ้างสิทธิ์เวลาหมดอายุ: อย่ารวมฟิลด์นี้ เนื่องจากกิจกรรมที่ทําให้เกิดการแจ้งเตือนนี้ได้เกิดขึ้นแล้ว
events การอ้างสิทธิ์เหตุการณ์ด้านความปลอดภัย: นี่คือออบเจ็กต์ JSON และต้องมีเหตุการณ์การเพิกถอนโทเค็นรายการเดียวที่มีช่องต่อไปนี้

  • subject_type: ต้องตั้งค่าเป็น oauth_token
  • token_type: นี่คือประเภทของโทเค็นที่ถูกเพิกถอน ไม่ว่าจะเป็น access_token หรือ refresh_token
  • token_identifier_alg: นี่คืออัลกอริทึมที่ใช้ในการเข้ารหัสโทเค็น และต้องเป็น hash_SHA512_double
  • token: นี่คือรหัสของโทเค็นที่ถูกเพิกถอน

ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทและรูปแบบฟิลด์ได้ที่ JSON Web Token (JWT)

อินเทอร์เฟซ "Flip-Back" ของ App Flip

สำหรับ App Flip แอปบนอุปกรณ์เคลื่อนที่ต้องส่งคืนรหัสการให้สิทธิ์หรือโทเค็นเพื่อเข้าถึง ไปยังแอป Google

Android (ผลลัพธ์ของ Intent)

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

  • การดำเนินการ: com.google.android.gms.auth.CODE_AVAILABLE
  • ฟีเจอร์เพิ่มเติม: code, state, access_token, token_type

แอปของคุณจะเปิด Google โดยใช้ทั้ง URL Scheme ที่กำหนดเองหรือ Universal Link HTTPS ดูข้อมูลเพิ่มเติมได้ที่คู่มือการใช้งาน iOS

  • รูปแบบ: <return_url>?code=AUTHORIZATION_CODE&state=STATE_STRING