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 açıklanmaktadır.

Ö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ı 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_PROJECT_ID yolu parametresi, kayıt sırasında yapılandırdığınız kimliktir.

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

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

İstek Parametreleri

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

Parametre Açıklama
code (Yetkilendirme kodu akışı için gereklidir) Hizmetiniz tarafından oluşturulan yetkilendirme kodu.
state (Zorunlu) Google'dan orijinal 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'si (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 Sertifikayı Veren Taraf 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 Verildiği Zaman Talebi: Bu, güvenlik etkinliği jetonunun oluşturulduğu zamanı temsil eden bir NumericDate değeridir.
toe Etkinlik Hak Talebi Zamanı: Bu, jetonun iptal edildiği zamanı temsil eden isteğe bağlı NumericDate değerdir.
exp Son Kullanma Zamanı Talebi: Bu alanı eklemeyin. Bu bildirime neden olan etkinlik zaten gerçekleşmiştir.
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 Geçişi için mobil uygulamanız, yetkilendirme kodunu veya erişim jetonunu Google uygulamasına döndürmelidir.

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