2014-10-06 32 views
5

Google Developer's website'da açıklandığı gibi Google+ web oturum açma sunucusu tarafı akışının küçük bir varyasyonunu deniyorum. Sağ benim yerel kalkınma sistemi https protokolünü kullanmak üzere ayarlanmış edilemeyeceğini söyleyerekYerel geliştirme için https kullanabilir miyim?

Uncaught SecurityError: Blocked a frame with origin " http://my-development-system.dev " from accessing a frame with origin " https://accounts.google.com ". The frame requesting access has a protocol of "http", the frame being accessed has a protocol of "https". Protocols must match.

Ben:

Google'ın GAPI kod, bu hata mesajını veriyor?

+2

Hata, * HTTPS kullanarak * olmadığınızı söylüyor. Güvenilir bir sertifika için ödeme yapmak istemediğinizi mi kastediyorsunuz? Kendinden imzalı sertifikalarla ilgili sorunları buldunuz mu? –

+0

Apache ile kullanıyorum ama kendi sertifikalarımı oluşturmam gerekiyor – Quince

+2

Ancak hatayı okumak bana https kullanmadığını söylüyor. , sertifikalarınızı üretir, ssl'yi kullanmak için apache'yi yapılandırır ve tekrar deneyin. –

cevap

0

Bunu

my local development system cannot be set up to use the https protocol

It can söyleyerek yanlış! Sadece kendini sertifikasyon SSL kullanarak.

1

Bunun sebebi sadece domain uymuyor çünkü, aynı zamanda (ve bu konuda port), Same Origin Policy dayattığı bir kısıtlama (sizin accounts.google.com üzerinde HTTPS vs sitesinde HTTP) bir farklı protokol ile yapılacak.

Bu ilke, www.bank.com gibi bir siteyi bir çerçeve kümesinin (veya çerçeveleme devre dışı bırakılırsa açılır pencere) içine yükleyip DOM'a erişmekten www.evil.com durur. Eğer DOM'a erişilebilseydi, bu herhangi bir web sitesinin özel verilerinizi başka bir sitede okuyabileceği için büyük bir güvenlik riski oluşturur.

CORS ilkesini uygulayarak ve diğer belirli etki alanlarının içerik okumasına izin vermek için sunucu tarafı üstbilgilerinin çıktısını alarak erişime izin vermek mümkündür, ancak bu durum sizin durumunuzda Google'ın tarafında olacaktır. Bu nedenle, https://accounts.google.com, CORS ilkesini uygulamazsa, sunucu tarafı akışının istemci tarafında bir değişiklik yapamazsınız. Bir başka engel ise, CORS uygulanmış olsa bile, DOM'a erişime izin vermemesidir. Ancak, AJAX çağrıları yoluyla başka bir alan adı, protokol veya bağlantı noktasından içerik alabileceksiniz. Hedef site, kimlik doğrulama bilgileri (yani bu durumda çerezler) isteğiniz ve alan adınız tarafından okunan yanıt için gönderilmek üzere Access-Control-Allow-Credentials: true başlığını da vermek zorundadır.

Can I use https for local development?

Orijinal sorunuzu yanıtlamak için yanıt evet olur. Bu, çoğu amaç için kendinden imzalı bir sertifika olabilir ve tarayıcınızdaki bu belirli hata mesajını etkilemez (tarayıcı kullanıcısı sertifikayı kabul edip ona güvenmeyi seçtiğinden).

İlgili konular