Hesaplar, sektör standardı OAuth 2.0 örtülü ve yetkilendirme kodu akışları kullanılarak bağlanır. Hizmetiniz OAuth 2.0 uyumlu yetkilendirmeyi ve jeton değişimi uç noktalarını desteklemelidir.
Dolaylı akışta Google, yetkilendirme uç noktanızı kullanıcının tarayıcısında açar. Başarılı bir şekilde oturum açtıktan sonra Google'a uzun süreli erişim jetonu döndürürsiniz. Bu erişim jetonu artık Google'dan gönderilen her isteğe dahil edilir.
Yetkilendirme kodu akışında iki uç noktaya ihtiyacınız vardır:
Yetkilendirme uç noktası, oturum açmamış kullanıcılara oturum açma kullanıcı arayüzünü sunar. Yetkilendirme uç noktası, kullanıcıları kaydetmek için kısa süreli bir yetkilendirme kodu da oluşturur.
İki tür exchange'den sorumlu olan jeton değişimi uç noktası:
- Uzun süreli yenileme jetonu ve kısa süreli erişim jetonu için bir yetkilendirme kodu değiştirir. Bu exchange, kullanıcı hesap bağlama akışından geçtiğinde gerçekleşir.
- Kısa ömürlü erişim jetonu için uzun ömürlü yenileme jetonu alır. Bu exchange, Google'ın süresi dolmuş olduğundan yeni bir erişim jetonuna ihtiyacı olduğunda gerçekleşir.
OAuth 2.0 akışı seçme
Doğrudan akışın uygulanması daha basit olsa da Google, dolaylı akış tarafından verilen erişim jetonlarının süresinin hiçbir zaman sona ermemesini önerir. Bunun nedeni, gizli jetonla bir jetonun süresi dolduktan sonra kullanıcının hesabını tekrar bağlamaya zorlamasıdır. Güvenlik nedeniyle jetonun geçerlilik süresinin dolması gerekiyorsa yetkilendirme kodu akışını kullanmanızı kesinlikle öneririz.
Tasarım yönergeleri
Bu bölümde, OAuth bağlantı akışları için barındırdığınız kullanıcı ekranıyla ilgili tasarım gereksinimleri ve öneriler açıklanmaktadır. Platform, Google uygulaması tarafından çağrıldıktan sonra Google sayfasında oturum açma ve kullanıcıya hesap bağlama izni ekranını gösterir. Kullanıcı, hesapların bağlanmasına izin verdikten sonra tekrar Google'ın uygulamasına yönlendirilir.

Şartlar
- Kullanıcının hesabının Google Home veya Google Asistan gibi belirli bir Google ürününe değil Google'a bağlanacağını bildirmeniz gerekir.
Öneriler
Aşağıdakileri yapmanızı öneririz:
Google'ın Gizlilik Politikası'nı inceleyin. İzin ekranına Google'ın Gizlilik Politikası'nın bir bağlantısını ekleyin.
Paylaşılacak veriler. Google'a hangi verilerle neden ihtiyaç duyduğunu açıklamak için açık ve net bir dil kullanın.
Harekete geçirici mesaj net olarak ifade edilsin. İzin ekranınızda "Kabul et ve bağla" gibi net bir harekete geçirici mesaj belirtin. Bunun nedeni, kullanıcıların hesaplarını bağlamak için hangi verileri Google ile paylaşmaları gerektiğini anlamalarıdır.
İptal etme. Bağlantı oluşturmamayı seçen kullanıcıların geri dönmesi veya iptal etmesi için bir yol sağlayın.
Oturum açma işlemini temizleyin. Kullanıcıların Google hesaplarında oturum açmak için kullanıcı adları ve şifre alanları veya Google ile oturum açma gibi açık yöntemleri olduğundan emin olun.
Bağlantıyı kaldırma özelliği. Kullanıcıların bağlantısını kaldırabilecekleri bir mekanizma sunun (ör. platformunuzdaki hesap ayarlarının URL'si). Alternatif olarak, kullanıcıların bağlı hesaplarını yönetebilecekleri bir Google Hesabı bağlantısı ekleyebilirsiniz.
Kullanıcı hesabını değiştirme yetkisi. Kullanıcıların hesaplarını değiştirmeleri için bir yöntem önerin. Bu, özellikle kullanıcıların birden fazla hesabı varsa faydalıdır.
- Kullanıcının hesap değiştirmek için izin ekranını kapatması gerekiyorsa Google'a kurtarılabilir bir hata gönderin. Böylece, OAuth bağlantısı ve örtük akışla istediğiniz hesapta oturum açabilir.
Logonuzu ekleyin. Onay ekranında şirket logonuzu görüntüleyin. Logonuzu yerleştirmek için stil yönergelerinizi kullanın. Google'ın logosunu da göstermek isterseniz Logolar ve ticari markalar konusuna bakın.

Projeyi oluşturma
Hesap bağlamayı kullanmak amacıyla projenizi oluşturmak için:
- Go to the Google API Console.
- Proje oluştur'u tıklayın.
- Bir ad girin veya oluşturulan öneriyi kabul edin.
- Kalan alanları onaylayın veya düzenleyin.
- Oluştur'u tıklayın.
Proje kimliğinizi görüntülemek için:
- Go to the Google API Console.
- Projenizi açılış sayfasındaki tabloda bulun. Proje kimliği Kimlik sütununda görünür.
OAuth İzin Ekranınızı yapılandırın
Google Hesabı bağlama işlemi, uygulamanın verilerine erişmek isteyen kullanıcılara, istedikleri veri türlerini ve geçerli şartları bildiren bir izin ekranı içerir. Google API istemci kimliği oluşturmadan önce OAuth izin ekranınızı yapılandırmanız gerekir.
- Google API'leri konsolunun OAuth izin ekranı sayfasını açın.
- İstenirse az önce oluşturduğunuz projeyi seçin.
"OAuth izin ekranı" sayfasında formu doldurun ve "Save" (Kaydet) düğmesini tıklayın.
Uygulama adı: İzin isteyen uygulamanın adı. Ad, uygulamanızı doğru şekilde yansıtmalı ve kullanıcıların başka bir yerde gördüğü uygulama adıyla tutarlı olmalıdır. Uygulama adı, Hesap Bağlama izin ekranında gösterilir.
Uygulama logosu: Kullanıcı rızası ekranında kullanıcıların uygulamanızı tanımasına yardımcı olacak bir resim. Logo, Hesap bağlama izin ekranında ve hesap ayarlarında gösterilir.
Destek e-postası: Kullanıcıların rızalarıyla ilgili soruları için sizinle iletişime geçmesi içindir.
Google API'leri için kapsamlar: Kapsamlar, uygulamanızın kullanıcınızın özel Google verilerine erişmesine olanak tanır. Google Hesabı Bağlama kullanım alanı için varsayılan kapsam (e-posta, profil, openid) yeterlidir. Herhangi bir hassas kapsam eklemeniz gerekmez. Kapsamları önceden değil de aşamalı olarak erişim talep etmek genellikle en iyi uygulamadır. Daha fazla bilgi edinin.
Yetkili alanlar: Sizi ve kullanıcılarınızı korumak için Google, yalnızca OAuth kullanarak kimlik doğrulaması yapan uygulamaların Yetkilendirilen Alanları kullanmasına izin verir. Uygulamalarınızın bağlantıları Yetkilendirilen Alanlar'da barındırılmalıdır. Daha fazla bilgi edinin.
Uygulama Ana Sayfası bağlantısı: Uygulamanız için ana sayfa. Yetkilendirilen Alanda barındırılmalıdır.
Uygulama Gizlilik Politikası bağlantısı: Google Hesabı bağlama izin ekranında gösterilir. Yetkilendirilen Alanda barındırılmalıdır.
Uygulama Hizmet Şartları bağlantısı (İsteğe bağlı): Yetkilendirilen bir alanda barındırılmalıdır.
Şekil 1. Google Hesabı ile Hayali Bir Uygulama İçin İzin Ekranını Bağlama, Tunery
"Doğrulama Durumu"nu kontrol edin, başvurunuzun doğrulanması gerekiyorsa başvurunuzu doğrulama için göndermek üzere "Doğrulama İçin Gönder" düğmesini tıklayın. Ayrıntılar için OAuth doğrulama gereksinimleri sayfasına bakın.
OAuth sunucunuzu uygulama
OAuth 2.0 örtülü akışını desteklemek için, servis HTTPS tarafından kullanılabilir bir yetkilendirme bitiş noktası yapar. Bu uç nokta, kimlik doğrulamasından ve veri erişimi için kullanıcılardan onay alınmasından sorumludur. Yetkilendirme uç noktası, henüz oturum açmamış olan kullanıcılarınıza bir oturum açma kullanıcı arabirimi sunar ve istenen erişime yönelik onayları kaydeder.
Bir Google uygulamasının hizmetinizin yetkili API'lerinden birini çağırması gerektiğinde, Google bu uç noktayı, kullanıcılarınızdan bu API'leri onlar adına çağırma izni almak için kullanır.
Google tarafından başlatılan tipik bir OAuth 2.0 örtülü akış oturumu aşağıdaki akışa sahiptir:
- Google, yetkilendirme uç noktanızı kullanıcının tarayıcısında açar. Kullanıcı, henüz oturum açmadıysa oturum açar ve henüz izin vermemişse Google'a API'niz ile verilerine erişme izni verir.
- Servis Google'a bir belirteç erişim ve döner oluşturur. Bunu yapmak için, isteğe bağlı erişim belirteci ile kullanıcının tarayıcısını tekrar Google'a yönlendirin.
- Google, hizmetinizin API'lerini çağırır ve her istekle erişim belirtecini ekler. Hizmetiniz, erişim belirtecinin Google'a API'ye erişme yetkisi verdiğini doğrular ve ardından API çağrısını tamamlar.
Yetkilendirme isteklerini işleme
Bir Google uygulamasının bir OAuth 2.0 örtülü akışı aracılığıyla hesap bağlama gerçekleştirmesi gerektiğinde, Google, aşağıdaki parametreleri içeren bir istekle kullanıcıyı yetkilendirme uç noktanıza gönderir:
Yetkilendirme uç noktası parametreleri | |
---|---|
client_id | Google'a atadığınız müşteri kimliği. |
redirect_uri | Bu isteğe yanıt gönderdiğiniz URL. |
state | Yönlendirme URI'sinde değiştirilmeden Google'a geri gönderilen bir defter tutma değeri. |
response_type | Yanıtta döndürülecek değer türü. OAuth 2.0 örtülü akışı için, tepki türü her zaman bir token . |
user_locale | Google Hesabı dil ayarı RFC5646 formatında kullanıcının tercih ettiği dilde içerik yerelleştirilmesine kullandı. |
Yetkilendirme son nokta mevcuttur Örneğin, https://myservice.example.com/auth
bir istek aşağıdaki gibi görünebilir:
GET https://myservice.example.com/auth?client_id=GOOGLE_CLIENT_ID&redirect_uri=REDIRECT_URI&state=STATE_STRING&response_type=token&user_locale=LOCALE
Yetkilendirme uç noktanızın oturum açma isteklerini işlemesi için aşağıdaki adımları uygulayın:
Doğrulama
client_id
veredirect_uri
istenmeyen veya yanlış yapılandırılmış istemci uygulamalara erişim sağlamalarını engellemek için değerler:- Onayla o
client_id
Google'a atanan istemci kimliğini eşleşir. - URL tarafından belirtilen Onayla
redirect_uri
parametre aşağıdaki forma sahiptir:https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID https://oauth-redirect-sandbox.googleusercontent.com/r/YOUR_PROJECT_ID
- Onayla o
Kullanıcının hizmetinizde oturum açıp açmadığını kontrol edin. Kullanıcı oturum açmadıysa hizmetinizin oturum açma veya kaydolma akışını tamamlayın.
Google'ın API'nize erişmek için kullanması için bir erişim belirteci oluşturun. Erişim belirteci herhangi bir dize değeri olabilir, ancak belirtecin ait olduğu kullanıcıyı ve istemciyi benzersiz bir şekilde temsil etmeli ve tahmin edilemez olmalıdır.
Tarafından belirtilen URL'ye kullanıcının tarayıcısını yönlendiren bir HTTP yanıtı gönder
redirect_uri
parametresi. URL parçasına aşağıdaki parametrelerin tümünü ekleyin:-
access_token
: Size belirteci erişim sadece oluşturulan -
token_type
: stringbearer
-
state
: Orijinal isteğinden değiştirilmemiş durum değeri
Şu elde edilen URL bir örneğidir:
https://oauth-redirect.googleusercontent.com/r/YOUR_PROJECT_ID#access_token=ACCESS_TOKEN&token_type=bearer&state=STATE_STRING
-
Google'ın OAuth 2.0 yönlendirme işleyicisi bu belirteç erişim ve onaylar aldığı state
değeri değişmedi. Google, hizmetiniz için bir erişim belirteci edindikten sonra, Google, hizmet API'lerinize yapılan sonraki çağrılara belirteci ekler.
Kullanıcı bilgisi isteklerini işleme
Userınfo uç OAth 2.0 korumalı bir kaynak olduğunu bağlı kullanıcı hakkında geri istemler. Userinfo uç noktasının uygulanması ve barındırılması, aşağıdaki kullanım durumları dışında isteğe bağlıdır:
- Hesap Oturum-In Bağlantılı Google One Tap ile.
- Sürtünmesiz abonelik androidtv üzerinde.
Erişim belirteci, belirteç uç noktanızdan başarıyla alındıktan sonra Google, bağlantılı kullanıcı hakkında temel profil bilgilerini almak için userinfo uç noktanıza bir istek gönderir.
userinfo uç nokta istek üstbilgileri | |
---|---|
Authorization header | Taşıyıcı türünde erişim belirteci. |
Örneğin, senin Userınfo son nokta mevcut ise https://myservice.example.com/userinfo
bir istek aşağıdaki gibi görünebilir:
GET /userinfo HTTP/1.1 Host: myservice.example.com Authorization: Bearer ACCESS_TOKEN
Kullanıcı bilgileri uç noktanızın istekleri işlemesi için aşağıdaki adımları uygulayın:
- Yetkilendirme başlığından erişim belirtecini çıkarın ve erişim belirteci ile ilişkili kullanıcı için bilgi döndürün.
- Erişim kodu geçersiz ise, kullanarak HTTP 401 Yetkisiz hata döndürür
WWW-Authenticate
Tepki Başlığını. Aşağıda, bir Userınfo hatası yanıtının bir örneği aşağıda verilmektedir:HTTP/1.1 401 Unauthorized WWW-Authenticate: error="invalid_token", error_description="The Access Token expired"
izinsiz veya başka bir başarısız hata yanıtı bağlama işlemi esnasında döndürülen bir 401 hata geri kazanımı mümkün olmayan olacak, Alınan belirteç atılır ve kullanıcı olacaktır bağlama işlemini yeniden başlatmak için. Erişim belirteci geçerli, dönüş ve HTTPS yanıt metnine aşağıdaki JSON nesnesi ile HTTP 200 yanıt ise:
{ "sub": "USER_UUID", "email": "EMAIL_ADDRESS", "given_name": "FIRST_NAME", "family_name": "LAST_NAME", "name": "FULL_NAME", "picture": "PROFILE_PICTURE", }
senin userinfo uç nokta döner HTTP 200 başarı yanıtı ise belirteç alınır ve iddialar kullanıcının Google'a karşı kayıtlıdır hesap.userinfo uç nokta yanıtı sub
Sisteminizde kullanıcıyı tanımlayan benzersiz bir kimlik. email
Kullanıcının e-posta adresi. given_name
İsteğe bağlı: kullanıcının adı. family_name
İsteğe bağlı: kullanıcının soyadı. name
İsteğe bağlı: kullanıcının tam adı. picture
İsteğe bağlı: Kullanıcının profil resmi.
Uygulamanızı doğrulama
Sen kullanarak uygulanmasını doğrulamak OAuth 2.0 Bahçesi aracı.
Araçta aşağıdaki adımları uygulayın:
- Yapılandırma tıklayın OAuth 2.0 Yapılandırma penceresini açın.
- OAuth akış alanında, istemci tarafı seçin.
- OAuth Endpoints alanında, Özel'i seçin.
- OAuth 2.0 uç noktanızı ve Google'a atadığınız müşteri kimliğini ilgili alanlarda belirtin.
- Adım 1 bölümünde, herhangi bir Google kapsamları seçmeyin. Bunun yerine, bu alanı boş bırakın veya sunucunuz için geçerli bir kapsam (veya OAuth kapsamları kullanmıyorsanız rastgele bir dize) yazın. İşiniz bittiğinde, Yetkilendirme API'leri tıklayın.
- Aşama 2 ile Aşama 3 bölümlerde OAuth 2.0 akışı geçmesi ve istendiği gibi her aşama çalıştığını doğrulamak.
Sen kullanarak uygulanmasını doğrulamak Google Hesap Bağlama Demo aracı.
Araçta aşağıdaki adımları uygulayın:
- Oturum Google düğmesiyle tıklayın.
- Bağlamak istediğiniz hesabı seçin.
- Hizmet kimliğini girin.
- İsteğe bağlı olarak, erişim isteyeceğiniz bir veya daha fazla kapsam girin.
- Başlangıç Demo tıklayın.
- İstendiğinde, bağlantı isteğini kabul edip reddedebileceğinizi onaylayın.
- Platformunuza yönlendirildiğinizi onaylayın.