Son Yazılar:

OAuth Geri Dönüş (Callback) Hatası (Twitter/X): Uygulama Ayarları ve Güvenlik İncelemesi

Twitter/X API ile çalışmaya başlayan çoğu geliştiricinin ilk karşılaştığı “gizemli hata” nedir biliyor musun? OAuth callback (geri dönüş) hatası. 🚧
Ben ilk kez bu hatayı aldığımda “Acaba şifre mi yanlış?” diye düşündüm. Saatlerce uğraştım, kodu tekrar tekrar yazdım… meğer sorun, Twitter Developer portalındaki callback URL ayarındaymış. 🙃

Bu yazıda, OAuth callback hatasının neden ortaya çıktığını, uygulama ayarlarında neleri kontrol etmen gerektiğini ve güvenlik incelemesi sırasında hangi püf noktaların işine yarayacağını anlatacağım.

OAuth Callback Nedir?

OAuth, Twitter API’sine güvenli erişim için kullanılan standart kimlik doğrulama protokolüdür. Twitter Developer belgelerinde açıklandığı gibi, süreç şöyle işler:

  1. Kullanıcı uygulamana giriş yapmak ister.
  2. Twitter, kullanıcıdan izin alır.
  3. Kullanıcı onay verdiğinde, Twitter seni callback URL’ine yönlendirir.
  4. Uygulaman bu URL üzerinden token alır ve işlem tamamlanır.

Ama callback URL yanlış yapılandırılırsa, OAuth süreci kırılır ve hata mesajı alırsın.

Callback Hatalarının Yaygın Sebepleri

401 Unauthorized veya “Callback URL not approved” gibi hatalar genellikle şu nedenlerden çıkar:

  1. Callback URL Developer Portal’da tanımlı değil.
  2. Yanlış URL kullanımı (http yerine https, ek slash hataları).
  3. Çoklu domain sorunları (ör. dev.site.com yerine www.site.com eklenmiş).
  4. Kod tarafında redirect_uri parametresi ile ayarların uyumsuzluğu.
  5. Uygulama erişim seviyesi sadece “App-only” ayarlıysa kullanıcı oturum açamaz.

Twitter’ın resmi hatalar rehberinde, callback hatalarının büyük çoğunluğunun URL uyumsuzluğundan kaynaklandığı belirtiliyor.

Tablo: OAuth Callback Hata Sebepleri ve Çözümleri

Sorun 🚨 Çözüm ✅
Callback URL eklenmemiş Developer portal → App Settings → Callback URLs bölümüne ekle
HTTP/HTTPS uyumsuzluğu Mutlaka HTTPS kullan, HTTP kabul edilmiyor
Slash (/) hatası https://site.com/callback ile https://site.com/callback/ farklıdır
Çoklu domain karmaşası Gerekirse tüm alt domainleri ayrı ayrı ekle
Redirect parametresi uyumsuzluğu Kod tarafındaki redirect_uri Developer portal ile eşleşmeli
İLGİLİ YAZI :  GIF Çalışmıyor (Twitter/X): Dönüştürme, Boyut ve Mobil Uyumlu Çözümler

Diyagram: OAuth Callback Akışı

[Uygulama Login] 
     ↓ 
[Twitter İzin Ekranı] 
     ↓ 
[Callback URL’e Yönlendirme] 
     ↓ 
[Uygulama Token Alıyor] 
     ↓ 
[Kullanıcı Giriş Başarılı 🎉]

Güvenlik İncelemesi: Dikkat Etmen Gerekenler

Twitter, OAuth sürecinde güvenliği çok ciddiye alıyor. Resmi güvenlik rehberinde özellikle şu noktalar vurgulanıyor:

  • Yalnızca HTTPS kullan. Çünkü kullanıcı verisi (token) hassastır.
  • Doğru domain doğrulaması yap. Saldırganların farklı URL’lere yönlendirme yapmasını engelle.
  • State parametresi ekle. CSRF saldırılarına karşı önlem.
  • En az yetki prensibi (least privilege). Kullanıcıdan sadece ihtiyaç duyduğun izinleri iste.

Ben ilk uygulamamda gereksiz yere “Direct Message read/write” izni istemiştim. Twitter bunu güvenlik incelemesinde sorguladı. Öğrendim ki, gerçekten ihtiyacın yoksa ekstra izin istemek hesabını tehlikeye sokabilir.

Adım Adım Çözüm Rehberi

  1. Developer Portal’a Git: Uygulamanı aç, Callback URLs kısmını kontrol et.
  2. Doğru URL Ekle: HTTPS formatında ve birebir eşleşen URL gir.
  3. Kodunu Kontrol Et: redirect_uri parametresini portal ile karşılaştır.
  4. State Parametresi Kullan: Güvenlik için ekle.
  5. Test Et: Hem local (localhost) hem production ortamında test yap.

Örnek: “Mobil Uygulama Callback Sorunu”

Bir mobil uygulama geliştiren arkadaşım, callback URL’ini http://127.0.0.1:3000/auth olarak girmişti. Bu adres HTTPS olmadığı için sürekli hata alıyordu. Çözüm olarak özel bir “custom scheme” (ör. myapp://auth) tanımladı ve Developer portalına ekledi. Sorun çözüldü. 📱

Pro İpuçları 🚀

  • Local test için ngrok kullan: https://xxxx.ngrok.io/callback şeklinde.
  • Çoklu ortam desteği: Hem staging hem production için ayrı callback URL ekle.
  • Hata loglarını incele: HTTP yanıtındaki hata mesajlarını mutlaka logla.
  • OAuth kütüphanelerini kullan: Örneğin Node.js için passport-twitter, Python için requests-oauthlib.
  • Dokümantasyona göz at: API güncellemelerinde callback gereklilikleri değişebilir.

Kişisel Anekdot: “Slash Detayı”

Bir defasında callback URL’im https://site.com/callback/ (sonunda slash var) idi. Kodda ise https://site.com/callback yazıyordu. Günlerce neden hata aldığımı anlamadım. Meğer tek fark o küçük slash’mış! 😅 O gün öğrendim ki OAuth, virgül kadar detaycı.

İLGİLİ YAZI :  El Yapımı Bira Kitiyle İlk Demeyi Başarıyla Yapma İpuçları

Sonuç: Callback Hatası Çözümsüz Değil

OAuth callback hatası ilk başta sinir bozucu olsa da çözüm aslında basit:

  • URL’leri birebir eşleştir,
  • HTTPS kullan,
  • Güvenlik parametrelerini ekle.

Bunları yaptığında, uygulaman sorunsuz şekilde Twitter/X API’sine bağlanır. Ve sen de hata yerine başarı mesajları görürsün. 🚀

Son Yazılar

Erişilebilirlik Ayarları Çalışmıyor (Twitter/X): Kontrast, Yazı Tipi ve Okunabilirlik

Erişilebilirlik Ayarları Çalışmıyor (Twitter/X): Kontrast, Yazı Tipi ve Okunabilirlik...

Tweet Taslakları Kayboldu (Twitter/X): Senkronizasyon, Cihazlar Arası Aktarım Çözümleri

Tweet Taslakları Kayboldu (Twitter/X): Senkronizasyon, Cihazlar Arası Aktarım Çözümleri...

İstenmeyen Etiketlemeler (Twitter/X): Etiket İzinleri ve Kötüye Kullanımı Engelleme

İstenmeyen Etiketlemeler (Twitter/X): Etiket İzinleri ve Kötüye Kullanımı Engelleme...

Alan Adı Engelli Uyarıları (Twitter/X): Güvenlik İncelemesi ve Beyaz Listeye Aldırma

Alan Adı Engelli Uyarıları (Twitter/X): Güvenlik İncelemesi ve Beyaz...

Bülten

Bizi Unutma

Erişilebilirlik Ayarları Çalışmıyor (Twitter/X): Kontrast, Yazı Tipi ve Okunabilirlik

Erişilebilirlik Ayarları Çalışmıyor (Twitter/X): Kontrast, Yazı Tipi ve Okunabilirlik...

Tweet Taslakları Kayboldu (Twitter/X): Senkronizasyon, Cihazlar Arası Aktarım Çözümleri

Tweet Taslakları Kayboldu (Twitter/X): Senkronizasyon, Cihazlar Arası Aktarım Çözümleri...

İstenmeyen Etiketlemeler (Twitter/X): Etiket İzinleri ve Kötüye Kullanımı Engelleme

İstenmeyen Etiketlemeler (Twitter/X): Etiket İzinleri ve Kötüye Kullanımı Engelleme...

Alan Adı Engelli Uyarıları (Twitter/X): Güvenlik İncelemesi ve Beyaz Listeye Aldırma

Alan Adı Engelli Uyarıları (Twitter/X): Güvenlik İncelemesi ve Beyaz...

GIF Çalışmıyor (Twitter/X): Dönüştürme, Boyut ve Mobil Uyumlu Çözümler

GIF Çalışmıyor (Twitter/X): Dönüştürme, Boyut ve Mobil Uyumlu Çözümler...

Erişilebilirlik Ayarları Çalışmıyor (Twitter/X): Kontrast, Yazı Tipi ve Okunabilirlik

Erişilebilirlik Ayarları Çalışmıyor (Twitter/X): Kontrast, Yazı Tipi ve Okunabilirlik ♿🐦🔧 Twitter, yani yeni adıyla X, milyonlarca insanın haber aldığı, tartışmalara katıldığı ve içerik ürettiği bir...

Tweet Taslakları Kayboldu (Twitter/X): Senkronizasyon, Cihazlar Arası Aktarım Çözümleri

Tweet Taslakları Kayboldu (Twitter/X): Senkronizasyon, Cihazlar Arası Aktarım Çözümleri 📝📱💻 Twitter, yani yeni adıyla X, kullanıcıların hızlı bir şekilde düşüncelerini paylaşmasını sağlayan bir platform. Ancak...

İstenmeyen Etiketlemeler (Twitter/X): Etiket İzinleri ve Kötüye Kullanımı Engelleme

İstenmeyen Etiketlemeler (Twitter/X): Etiket İzinleri ve Kötüye Kullanımı Engelleme 🚫🏷️ Twitter, yani yeni adıyla X, sosyal medya etkileşimlerinin en hızlı döndüğü platformlardan biri. Bir tweet’te...

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz