Facebook tarafından kullanılan OAuth 2.0 yetkilendirme süreci "Yetkilendirme Kodu İzni"dir. Bunu nasıl uygulayacağımızı ve Apidog'da nasıl hata ayıklayacağımızı tanıtalım.
OAuth 2.0 Nedir?
OAuth 2.0, kullanıcı kimlik bilgileri gerektirmeden üçüncü taraf erişimini korunan kaynaklara etkinleştiren, yaygın olarak kullanılan bir yetkilendirme protokolüdür. Dört ana rolü içerir:
- Kaynak Sahibi: Genellikle korunan kaynaklara sahip olan kullanıcıdır.
- İstemci: Kaynak sahibinin verilerine erişim arayan üçüncü taraf uygulamasıdır.
- Yetkilendirme Sunucusu: Kaynak sahibini doğrular ve istemciye yetki verir.
- Kaynak Sunucusu: Korunan kaynakları depolar ve yönetir, erişim için API'ler sağlar.

Yaygın Yetkilendirme Akışları
OAuth 2.0 protokolü, çeşitli yetkilendirme akışları aracılığıyla yetkilendirme uygular. Yaygın yetkilendirme akışları şunları içerir:
- Yetkilendirme Kodu İzni: İstemci, kullanıcıyı yetkilendirme sunucusuna yönlendirir. Kullanıcı oturum açtıktan ve izin verdikten sonra, yetkilendirme sunucusu istemciye bir yetkilendirme kodu döndürür. İstemci daha sonra yetkilendirme kodunu kimlik bilgileriyle birlikte bir erişim jetonu için değiştirir.
- PKCE (Kod Değişimi için Kanıt Anahtarı) ile Yetkilendirme Kodu İzni: Standart yetkilendirme kodu akışına benzer, ancak istemci, PKCE (Kod Değişimi için Kanıt Anahtarı) kullanarak güvenliği artırır.
- Kaynak Sahibi Parola Kimlik Bilgileri İzni: Kaynak sahibi, kullanıcı adını ve parolasını doğrudan istemciye sağlar. İstemci daha sonra bu kimlik bilgilerini yetkilendirme sunucusundan bir erişim jetonu talep etmek için kullanır.
- İstemci Kimlik Bilgileri İzni: İstemci, kendi kimlik bilgilerini kullanarak doğrudan yetkilendirme sunucusundan bir erişim jetonu talep eder. Bu akış, istemcinin kaynaklara erişmesi gerektiği durumlar için uygundur.
- Örtülü İzin: Bir tarayıcı tabanlı uygulamada doğrudan istemciden bir erişim jetonu elde etmek için kullanılır. Bu akış tipik olarak web ön uç uygulamaları için kullanılır.
Üçüncü Taraf Web Sitelerine Giriş Yapmak İçin Facebook OAuth 2.0 Nasıl Kullanılır
Adım 1: Uygulamayı oluşturun ve istemci kimliğini ve istemci sırrını alın
İlk olarak, https://developers.facebook.com adresinde bir Facebook geliştirici hesabı açmanız gerekir. Açtıktan sonra, içinde bir uygulama oluşturun.

Uygulama başarıyla oluşturulduktan sonra, [Uygulama Ayarları->Temel] seçeneğine tıklayın. Buradaki uygulama numarası istemci kimliğidir (Client ID) ve uygulama anahtarı istemci sırrıdır (Client Secret). Daha sonra bu iki özniteliğe ihtiyacımız olacak. kullanılmış.

Adım 2: Geri çağırma adresini yapılandırın
Uygulama oluşturulduktan sonra, kontrol panelinde "geri çağırma adresini" de ayarlamanız gerekir, [Kontrol Paneli -> Bu uygulamayı özelleştir] seçeneğine tıklayın ve ardından yapılandırma arayüzüne girmek için "Facebook Giriş Ayarları"na tıklayın.

Yapılandırma arayüzündeki "Geçerli OAuth Atlama URI'si" öğesinde, geri çağırma adresini (Callback URL) doldurun, bu yönlendirme adresidir. Genellikle sunucunuzun etki alanı adıdır (Facebook'un https ile başlamasını gerektirir).
Henüz bir tane yoksa, etki alanı adının erişilebilir olduğundan emin olduğunuz sürece önce doldurabilirsiniz. Yapılandırma tamamlandıktan sonra kaydedin.

"Geri çağırma adresi"ne ihtiyacımızın amacı, adres çubuğunda yetkilendirme kodunu (code) elde etmektir. Genel olarak, OAuth 2.0 giriş sayfasında kullanıcı adı ve parola doldurulduktan sonra, "geri çağırma adresine" yönlendirilecek ve adres çubuğunda görüntülenebilir.
Yetkilendirme kodunu (code) alın. Aşağıdaki adres çubuğu, kodu manuel olarak almak için kullanılır:

Yukarıdaki bilgiler yapılandırıldıktan sonra, OAuth 2.0 yetkilendirmesinin ana sürecine resmi olarak giriyoruz.
Adım 3: Erişim jetonu alın
Yukarıdaki birinci ve ikinci adımlar hazır olduğunda, bir erişim jetonu (Token) için başvurabiliriz. Bu adımı Apidog aracılığıyla göstereceğiz.

Apidog, çok mükemmel bir API hata ayıklama ve yönetim aracıdır, Token erişim jetonunu doğrudan Apidog'da alabilirsiniz. Henüz Apidog yüklü değilse, hemen bir tane indirin!
- HTTP İsteği Oluşturma Apidog'da bir HTTP projesi oluşturduktan sonra, onu açın ve ardından projede bir istek oluşturun, "Belgeyi Düzenle -> Auth -> OAuth 2.0" seçeneğini seçin.

2. İstemci Kimliğini, İstemci Sırrını ve Geri Çağırma URL'sini Yapılandırın Apidog'daki OAuth 2.0 sayfasında seçilen varsayılan yetkilendirme modu, Facebook OAuth 2.0'ın da Yetkilendirme Kodu kullandığı gibi Yetkilendirme Kodudur. Bu nedenle, burada geçiş yapmanıza gerek yok.

Ardından, sayfanın altındaki İstemci Kimliğini ve Geri Çağırma URL'sini bulun ve Facebook OAuth 2.0 hizmetinden elde edilen İstemci Kimliğini, İstemci Sırrını ve yapılandırılan Geri Çağırma URL'sini doldurun. Belirli parametreler, yukarıdaki "Adım 1, Adım 2"de belirtilen yapılandırmalardır.

3. Yetkilendirme Kodu İstek URL'sini Yapılandırın Facebook'un resmi belgelerine göre, OAuth 2.0 kimlik doğrulaması sırasında, yetkilendirme kodu istek URL'si şudur: https://www.facebook.com/v19.0/dialog/oauth
Bu yetkilendirme kodu istek URL'sini Yetkilendirme URL'sine doldurmanız yeterlidir. Bu URL, giriş yetkilendirme sayfası olarak anlaşılabilir. İlk kez giriş durumunu doğrulanırken bu sayfayı (istemci tarafında bir pencere şeklinde) açar ve sizden kullanıcı adınızı ve parolanızı girmenizi ister.

Genellikle, bir giriş yetkilendirme sayfası manuel olarak oluşturulurken, yetkilendirme URL'sinde ek parametreler gerekir, örneğin:
https://www.facebook.com/v19.0/dialog/oauth?
client_id={app-id}
&redirect_uri={redirect-uri}
&state={state-param}
Not: Parametrelerin devamı normalde satır başı yapmamalıdır.
Ancak, Apidog'da, temel URL'den sonraki ek parametrelere genellikle gerek yoktur. Yalnızca soru işaretinden "?" önceki yol gereklidir, çünkü diğer zorunlu parametreler diğer seçeneklerde ayrı olarak yapılandırılır. Elbette, bazı sorgu parametreleri eklemek isterseniz, bu giriş kutusunun yanındaki simgeye tıklayarak da ekleyebilirsiniz:

Ayrıca "Daha Fazla" seçeneklerini genişletebilir ve "Kapsam"ı gerekli izin "public_profile" ile doldurmak gibi, doldurulması gereken parametreler için değerleri girebiliriz. Facebook'taki "public_profile" izni, uygulamanın kullanıcının düğümünün varsayılan genel profil alanlarını okumasına izin verir ve bu izin otomatik olarak tüm uygulamalara verilir.
"Durum" seçeneğinde, çapraz site istek sahteciliğini önlemek için "state" değerini girin. Üçüncü taraf platformlar genellikle bunun doldurulmasını gerektirir, bu nedenle genellikle doldururuz, aksi takdirde erişim jetonunu alırken hatalar olabilir.

4. Erişim Jetonu İstek URL'sini Yapılandırın Facebook'un resmi belgelerine göre, bir erişim jetonu almak için, istenen URL şudur: https://graph.facebook.com/v19.0/oauth/access_token
Bu adresi Erişim Jetonu URL'si giriş alanına doldurmanız yeterlidir. Benzer şekilde, diğer parametreler diğer giriş alanlarında ayrı olarak yapılandırılmıştır, bu nedenle URL'ye dahil edilmeleri gerekmez.

5. Erişim Jetonunu Alın Yukarıda belirtilen tüm yapılandırma öğeleri ayarlandıktan sonra, erişim jetonunu almak için "Jeton Al" düğmesine tıklayabilirsiniz.
Tıkladıktan sonra, ilk girişinizse, yetkilendirmenizi isteyen bir pencere açılacaktır, burada Facebook hesabınızın kullanıcı adını ve parolasını girmeniz gerekir. Yeni bir cihazdan oturum açıyorsanız, ek doğrulama için e-postanıza da ihtiyacınız olabilir.

Kullanıcı adınızı ve parolanızı girdikten sonra, yetkilendirmeyi onaylamanız istenecektir.
Yetkilendirmeyi tamamlamak için onayla'ya tıklayın. Yetkilendirildikten sonra, erişim jetonu otomatik olarak alınacak ve sayfada görüntülenecektir. Aynı zamanda, Facebook tarafından döndürülen diğer bilgiler de ayrıştırılacaktır.

Adım 4: Jeton Tabanlı Açık Kaynaklara Erişim Jetonu (Token) ile artık Facebook'un açık kaynaklarına erişmek için kullanabilirsiniz. Facebook Graph API'sinde ne tür açık kaynakların mevcut olduğunu görebilirsiniz.
Örneğin, aşağıdaki API kullanıcının kimliğini ve adını alır. Arayüzünüz hiçbir şey döndürmüyorsa, "Adım 3"ün 3. Bölümünde belirtildiği gibi, gerekli izinlere sahip olup olmadığınızı kontrol etmeniz gerekebilir, bunu Kapsam'da yapılandırın. https://graph.facebook.com/v12.0/me?fields=id,name

Bir istek gönderirken, Apidog jetonu otomatik olarak Yetkilendirme başlığına ekleyecek ve "Bearer" ile eklenerek gönderecektir.
Jetonu URL'de taşımak istiyorsanız, sayfadaki yapılandırma seçeneklerinde jetonun "Konum Ekle" seçeneğini de değiştirebilir ve "Sorgu Parametreleri"ni seçebilirsiniz.
Özet
OAuth 2.0, üçüncü taraf uygulamaların korunan kaynaklara güvenli bir şekilde erişmesine izin veren, açık standart bir yetkilendirme protokolüdür. Yetkilendirme kodu yetkilendirme süreci yaygın bir yetkilendirme yöntemidir ve Facebook tarafından kullanılır.
Uygulama sırasında, bir uygulama oluşturmanız, bir geri çağırma adresi yapılandırmanız, bir erişim jetonu almanız ve hata ayıklama için Apidog kullanmanız gerekir. Erişim jetonunu aldıktan sonra, jetonu Facebook'un açık kaynaklarını çağırmak için kullanabilirsiniz.