OAuth 2.0 Yetkilendirme Kodu İzni, birçok hizmetin (GitHub dahil) üçüncü taraf uygulamaların parolaları paylaşmadan kullanıcı verilerine erişmesine izin vermek için kullandığı yaygın bir kimlik doğrulama yöntemidir. Bunu Apidog'da uygulamak ve hata ayıklamak değerli bir beceri olabilir.
OAuth 2.0
OAuth 2.0, kullanıcı kimlik bilgileri gerektirmeden korunan kaynaklara üçüncü taraf erişimini sağlayan, yaygın olarak kullanılan bir yetkilendirme protokolüdür. Kaynak Sahibi, İstemci, Yetkilendirme Sunucusu ve Kaynak Sunucusu olmak üzere dört ana rolü içerir.

Yaygın Yetkilendirme Akışları
OAuth 2.0 protokolü, yetkilendirmeyi çeşitli yetkilendirme akışları aracılığıyla 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 istemek için kullanır.
- İstemci Kimlik Bilgileri İzni: İstemci, kendi kimlik bilgilerini kullanarak doğrudan yetkilendirme sunucusundan bir erişim jetonu ister. Bu akış, istemcinin kaynaklara erişmesi gerektiği durumlar için uygundur.
- Örtük İzin: Bir tarayıcı tabanlı uygulamada doğrudan istemciden bir erişim jetonu almak için kullanılır. Bu akış tipik olarak web ön uç uygulamaları için kullanılır.
Github OAuth 2.0 (İstemci Kimliği ve İstemci Sırrı) Nasıl Kurulur
Adım 1: Uygulamayı oluşturun ve istemci kimliğini ve istemci sırrını alın
İstemci kimliğini ve istemci anahtarını almak için önce bir uygulama oluşturmamız gerekir. Github'da bir tane oluşturmak için bu bağlantıya tıklayın: https://github.com/settings/applications/new ve ardından "Ana Sayfa URL'nizi" buraya Alan adını girin, yerel hata ayıklama yapıyorsanız, http://127.0.0.1:8000 gibi yerel hizmetinizi girebilirsiniz.
"Yetkilendirme geri arama URL'si" alanına geri arama adresinizi girin; bu, alan adınız veya http://127.0.0.1:8000/callback gibi yerel geri arama adresiniz olabilir.
İlgili yapılandırmayı girdikten sonra, oluşturmak için "Uygulamayı kaydet" seçeneğine tıklayın.

Uygulama oluşturulduktan sonra, istemci kimliği ve istemci sırrı oluşturulur. İstemci anahtarının ayrı olarak oluşturulması gerekir. Bir anahtar oluşturmak için "Yeni bir istemci sırrı oluştur" seçeneğine tıklayın.

Adım 2: Erişim jetonu alın
Yukarıdaki ilk adım hazır olduğunda, bir erişim jetonu (Jeton) 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.

Jeton erişim jetonunu doğrudan Apidog'da alabilirsiniz. Henüz Apidog yüklü değilse, hemen indirin!
- Apidog'da yeni bir HTTP projesi oluşturun ve açın, ardından projede yeni bir istek oluşturun ve [Belgeyi Değiştir -> Kimlik Doğrulama -> OAuth 2.0 -> seçeneğini belirleyin.

2. İstemci kimliğini, istemci anahtarını ve yönlendirme adresini yapılandırın
Apifdog'daki OAuth 2.0 sayfasında seçilen varsayılan yetkilendirme modu Yetkilendirme Kodu'dur (yetkilendirme kodu modu).
Github OAuth 2.0 da Yetkilendirme Kodu'nu (yetkilendirme kodu modu) kullandığından, burada geçiş yapmanız gerekmez.

Ardından, sayfanın alt kısmında İstemci Kimliği, İstemci Sırrı ve Geri Arama URL'sini bulun. İstemci kimliği (İstemci Kimliği), istemci sırrı (İstemci Sırrı) ve yapılandırılan geri arama adresi (Geri Arama URL'si), Github'ın OAuth 2.0 hizmetinden alınacaktır.
Sadece doldurun. Belirli parametreler, yukarıdaki "Adım 1"deki yapılandırmalardır.

3. Yetkilendirme kodunun istek adresini yapılandırın
Github resmi belgelerine göre, OAuth 2.0 kimlik doğrulaması gerçekleştirirken, yetkilendirme kodunun istek adresi şudur:
https://github.com/login/oauth/authorize
Bu yetkilendirme kodunun istek adresini Yetkilendirme URL'sine girmeniz yeterlidir. Bu adresi oturum açma yetkilendirme sayfası olarak anlayabiliriz.
Bu sayfa, oturum açma durumu ilk kez doğrulandığında (istemcide bir penceredir) açılacak ve ardından istek adresini girmeniz istenecektir. kullanıcı adı ve parola.

Genellikle, oturum açma yetkilendirme sayfası manuel olarak oluşturulurken, yetkilendirme adresinden sonra bazı parametrelerin taşınması gerekir.
Ancak, Apidog'da, URL'den sonraki parametrelerin genellikle taşınması gerekmez, sadece soru işaretinden önceki yol yeterlidir? yeterlidir, çünkü diğerleri gereklidir. Parametreler diğer seçeneklerde ayrı olarak yapılandırılmıştır.
Elbette, bazı Sorgu parametreleri taşımak isterseniz, bunları da ekleyebilirsiniz. Eklemek için giriş kutusunun arkasındaki simgeye tıklayın:

Ayrıca "Daha Fazla" seçeneğini genişletebilir ve doldurulması gereken parametre değerlerini ilgili seçeneklere girebiliriz. Örneğin, "Kapsam" alanına read:user, user:email vb. gibi gerekli izinleri girebilirsiniz.
Diğerleri için daha fazla izne sahip olabilirsiniz Github yardım belgelerinin izinler modülünü ziyaret ederek görüntüleyebilirsiniz. "Durum" seçeneğine durumu girin. Durum, siteler arası istek sahteciliğini önlemektir.

4. Erişim jetonunun istek adresini yapılandırın
Github'ın resmi belgelerine göre, bir erişim jetonu için başvurmak için istenen URL şudur:
https://github.com/login/oauth/access_token
Yukarıdaki adresi Apidog'un OAuth 2.0 sayfasının Erişim Jetonu URL'si giriş alanına girmeniz yeterlidir.

5. Github OAuth 2.0 hizmeti için erişim jetonunu alın
Yukarıdaki yapılandırma öğeleri ayarlandıktan sonra, erişim jetonunu almak için "Jeton Al" düğmesine tıklayabilirsiniz.
Tıkladıktan sonra, bu ilk oturum açışınızsa, yetkilendirmeniz için bir pencere açılacaktır. Github hesabınızın kullanıcı adını ve parolasını girmeniz yeterlidir.

Kullanıcı adını ve parolayı girdikten sonra, yetkilendirmeyi onaylamanız veya iki adımlı doğrulama gerçekleştirmeniz istenecektir. Doğruladıktan sonra, Onayla'ya tıklayın.
Yetkilendirme tamamlandıktan sonra, erişim jetonu otomatik olarak alınacak ve sayfada görüntülenecektir. Aynı zamanda, Github tarafından döndürülen diğer bilgiler de ayrıştırılacak, aşağıdaki şekilde gösterildiği gibi. Burada "Süresi Doldu" görüntülenir çünkü Github bize expires_in özniteliğini döndürmedi, bu yüzden bir karar veremiyoruz. Ancak, bu Jeton kullanılabilir. Aşağıda bir istek başlatalım.

Adım 3: Jeton tabanlı açık kaynaklara erişin
Erişim jetonuna (Jeton) sahip olduktan sonra, bu erişim jetonunu Github'ın açık kaynaklarını çağırmak için kullanabilirsiniz. Belirli açık kaynakları Github API'sinde görüntüleyebilirsiniz.
Örneğin, aşağıdaki API kullanıcı bilgilerini alır. Arayüzünüz döndürmezse, izinleriniz olup olmadığını kontrol etmeniz gerekir. "Adım 2"nin 3. Bölümünde belirtildiği gibi, sadece Kapsam'da yapılandırın.

Bir istek gönderirken, Apidog otomatik olarak Jeton'u istek başlığının Yetkilendirmesine ekleyecek, Taşıyıcı'ya ekleyecek ve gönderecektir. Jeton'u URL'de taşımak isterseniz, sayfanın yapılandırma öğelerindeki Jeton'un "Konum Ekle" seçeneğini de değiştirebilir ve "Sorgu Parametreleri"ni seçebilirsiniz.

Özet
OAuth 2.0, üçüncü taraf uygulamaların, kullanıcının bir kullanıcı adı ve parola sağlamasını gerektirmeden erişim jetonları almasına olanak tanıyan bir yetkilendirme çerçevesidir. GitHub tarafından kullanılan yetkilendirme süreci "yetkilendirme kodu yetkilendirme süreci"dir ve yetkilendirme süreci Apidog'da hata ayıklanabilir ve yapılandırılabilir.