Bir OmniAuth oturum açmasını proxy üzerinden izlemek
Proxy'yi ihtiyaç duyan isteklerde yapılandırmak için tarayıcı yönlendirmesini ve Rails tarafındaki token alışverişini izleyin.
Kullanıcı “Oturum aç”a tıklar, sağlayıcının sayfasına ulaşır ve Rails'e döner. Sonraki adım yine de başarısız olabilir çünkü Rails sunucusundan yeni bir bağlantı açar.
browser → provider authorization page → browser callback to Rails
Rails → provider token endpoint → Rails
Tarayıcı yetkilendirme yönlendirmesini kendi ağ yapılandırmasıyla izler. Rails ise arka kanal token alışverişini kurulu OmniAuth stratejisinin seçtiği HTTP istemcisiyle gerçekleştirir. Kurumsal bir proxy'nin arkasında çalışan bir işçi, sağlayıcıya giden isteklerinde bu yola ihtiyaç duyar.
OAuth 1.0'da da kullanıcı erişimi yetkilendirmeden önce sunucu tarafında bir istek belirteci adımı vardır. OAuth 2.0'ın yetkilendirme kodu akışında geri çağrıdan sonra kendi token alışverişi bulunur. Kesin sıra stratejiye bağlıdır, ancak tarayıcı ile uygulama sunucusu ayrı başlangıç noktaları olarak kalır.
İstemcinin yapılandırmasını bulun
Stratejiyi, belirtecini ve sağlayıcı API isteklerini gönderen HTTP istemcisine kadar izleyin. O istemcinin belgelenmiş proxy seçeneğini kullanın. Bazı stratejiler istemci seçeneklerini bir OAuth kitaplığına aktarır; bazıları altında bir HTTP bağlantısı yapılandırır. Bir stratejinin kabul ettiği seçenek otomatik olarak ortak bir OmniAuth seçeneği değildir.
Sağlayıcının yetkilendirme, token ve geri çağrı URL'lerinin gerçek hizmetlerini tanımlamasına izin verin. Giden proxy, sağlayıcıya ulaşmak için kullanılan bir taşıma ayarıdır; geri çağrı adresinin yerine geçmez ve OAuth istek parametrelerine eklenecek bir alan değildir.
Bir oturum açmayı izlerken son tamamlanan adımı işaretleyin. Görüntülenen sağlayıcı oturum açma sayfası, tarayıcının yolunun çalıştığını kanıtlar. Rails'in aldığı geri çağrı, tarayıcının döndüğünü kanıtlar. Sonraki token isteği, Rails sürecinden gelen bir proxy bağlantısı, meydan okuma veya sağlayıcı yanıtı için incelenecek noktadır.