Google Account Linking API

Bu referans sayfasında, uygulamanızın OAuth tabanlı hesap bağlama işlemi sırasında kullandığı, Google tarafından sunulan uç noktalar ve arayüzler belgelenmektedir.

Ön koşullar ve standartlar

Bu Google uç noktalarıyla başarılı bir şekilde etkileşim kurmak için entegrasyonunuzun aşağıdaki standartlara uyması gerekir:

  • OAuth 2.0: RFC 6749 ile uyumludur.
  • JSON Web Jetonları (JWT): RFC 7519 ile uyumludur (Basitleştirilmiş Bağlantı Oluşturma ve RISC için).
  • Güvenlik Etkinliği Jetonları: RFC 8417 (RISC için) ile uyumludur.
  • HTTPS: Tüm istekler güvenli bir HTTPS bağlantısı üzerinden yapılmalıdır.

OAuth yönlendirme URI'si

Hizmetinizin, başarılı kimlik doğrulama ve izin işleminden sonra kullanıcının tarayıcısını yönlendirdiği uç nokta. YOUR_PARTNER_ID yolu parametresi, kayıt sırasında yapılandırılan Google Hesabı bağlantısı İş Ortağı Kimliği'dir (veya Proje Kimliği).

  • URL: https://oauth-redirect.googleusercontent.com/r/YOUR_PARTNER_ID
  • Korumalı alan URL'si: https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PARTNER_ID

  • Yöntem: GET (tarayıcı yönlendirmesi kullanılarak)

İstek Parametreleri

Kullanıcıyı Google'a geri yönlendirirken URL'ye parametreler eklenmelidir. Kullanılan OAuth akışına bağlı olarak bu parametreler sorgu dizesi (yetkilendirme kodu akışı) veya URL parçası (dolaylı akış) olarak biçimlendirilir.

Parametre Açıklama
code (Yetkilendirme kodu akışı için zorunlu) Hizmetiniz tarafından oluşturulan yetkilendirme kodu.
state (Zorunlu) Google'dan ilk olarak alınan, değiştirilmemiş durum değeri.
access_token (Örtülü akış için zorunlu) Hizmetiniz tarafından oluşturulan uzun ömürlü erişim jetonu.
token_type (Örtülü akış için zorunlu) bearer olmalıdır.

Hata Yanıtları

OAuth yönlendirme URI'sine yapılan istek hatalıysa HTTP 400 Bad Request hatası alırsınız. Yanıt metni, aşağıdaki yapıya sahip bir JSON nesnesi içerir:

Alan Açıklama
sendPostBody JS'nin POST ile redirectUri'ye yönlendirilip yönlendirilmeyeceğini belirler. Bu senaryoda genellikle false olur.
errorMessage Yönlendirme tamamlanamadığında istemciye gösterilecek hata mesajı. Eksik parçalar için bu değer "A URI fragment or query string must be set."'dır.

OAuth 2.0 Hata Yanıtları

Kullanıcı izni reddederse veya hizmetiniz bir hatayla karşılaşırsa hizmetiniz, kullanıcıyı standart OAuth 2.0 hata parametreleriyle (ör. error=access_denied) OAuth yönlendirme URI'sine geri yönlendirmelidir. Google bu parametreleri işler ve kullanıcıya uygun bir hata ekranı gösterir.

RISC API (isteğe bağlı)

Kullanıcı, platformunuzdaki hesabının bağlantısını RISC protokolünü kullanarak kaldırdığında Google'ı proaktif olarak bilgilendirmek için hizmetiniz tarafından kullanılır. Böylece her iki platformun senkronize kalması sağlanır.

  • URL: https://risc.googleapis.com/v1/events:publish
  • Yöntem: POST
  • Kimlik doğrulama: Uygun izinlere sahip bir Google hizmet hesabı jetonu gerektirir.
  • Content-Type: application/json

Güvenlik Etkinliği Jetonu Talepleri

Google'a jeton iptali etkinliklerini bildirmek için kullandığınız güvenlik etkinliği jetonları aşağıdaki tablodaki şartlara uygun olmalıdır:

İddia Açıklama
iss Sertifika Veren Talebi: Bu, sizin barındırdığınız ve kayıt sırasında Google ile paylaşılan bir URL'dir.
aud Kitle Talebi: Bu talep, JWT alıcısı olarak Google'ı tanımlar. google_account_linking olarak ayarlanmalıdır.
jti JWT kimliği hak talebi: Bu, her güvenlik etkinliği jetonu için oluşturduğunuz benzersiz bir kimliktir.
iat Issued At Claim: Bu, NumericDate değeridir ve bu güvenlik etkinliği jetonunun oluşturulduğu zamanı temsil eder.
toe Etkinlik Talebi Zamanı: Bu, jetonun iptal edildiği zamanı temsil eden isteğe bağlı NumericDate bir değerdir.
exp Son Kullanma Zamanı Talebi: Bu bildirime neden olan etkinlik zaten gerçekleştiğinden bu alanı eklemeyin.
events Güvenlik Etkinlikleri Talebi: Bu bir JSON nesnesidir ve yalnızca aşağıdaki alanları içeren tek bir jeton iptali etkinliği içermelidir:

  • subject_type: Bu özellik oauth_token olarak ayarlanmalıdır.
  • token_type: Bu, iptal edilen jetonun türüdür (access_token veya refresh_token).
  • token_identifier_alg: Bu, jetonu kodlamak için kullanılan algoritmadır ve hash_SHA512_double olmalıdır.
  • token: Bu, iptal edilen jetonun kimliğidir.

Alan türleri ve biçimleri hakkında daha fazla bilgi için JSON Web Token (JWT) başlıklı makaleyi inceleyin.

Uygulama Bağlama "Geriye Doğru Kaldırılabilir" Arayüzü

Uygulama Değiştirme için mobil uygulamanızın yetkilendirme kodunu veya erişim jetonunu Google uygulamasına döndürmesi gerekir.

Android (Intent Sonucu)

Uygulamanız bir Intent kullanılarak açılıyor. İzin alındıktan sonra işlem tamamlanır ve Google'a bir sonuç döndürülür. Daha fazla bilgi için Android uygulama kılavuzuna bakın.

  • İşlem: com.google.android.gms.auth.CODE_AVAILABLE
  • Ekstralar: code, state, access_token, token_type.

Uygulamanız, özel bir URL şeması veya HTTPS Evrensel Bağlantısı kullanarak Google'ı açar. Daha fazla bilgi için iOS uygulama kılavuzuna bakın.

  • Biçim: <return_url>?code=AUTHORIZATION_CODE&state=STATE_STRING