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_PROJECT_ID พารามิเตอร์เส้นทาง คือรหัสที่คุณกำหนดค่าในระหว่างการจดทะเบียน

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

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

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

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

พารามิเตอร์ คำอธิบาย
code (ต้องระบุสำหรับขั้นตอนรหัสการให้สิทธิ์) รหัสการให้สิทธิ์ที่บริการของคุณสร้างขึ้น
state (ต้องระบุ) ค่าสถานะที่ไม่ได้แก้ไขซึ่งได้รับจาก Google ในตอนแรก
access_token (ต้องระบุสำหรับขั้นตอนการให้สิทธิ์โดยนัย) โทเค็นเพื่อการเข้าถึงที่ใช้ได้นานซึ่งบริการของคุณสร้างขึ้น
token_type (ต้องระบุสำหรับ Implicit Flow) ต้องเป็น 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 จะประมวลผลพารามิเตอร์เหล่านี้ และแสดงหน้าจอข้อผิดพลาดที่เหมาะสมต่อผู้ใช้

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

บริการของคุณใช้เพื่อแจ้งให้ 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 (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 ที่กำหนดเองหรือลิงก์ทั่วไป HTTPS ดูข้อมูลเพิ่มเติมได้ที่คู่มือการใช้งาน iOS

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