Greasemonkey komut dosyasından çok basit bir GAE örneği kullanıyorum. Bu son aylar için iyi çalıştı, ama şimdi benim için giriş işlemini kesen nihai 'devam' konumuna bir yol eklenir.Google App Engine, neden giriş sırasında 'devam' konumuma bir yol ekliyor?
temel iş akışı, kullanıcının kendi Google Hesabınıza giriş, ancak GAE'nin mesela onun belirteç aşımına uğradı varsayımı altında:
- Kullanıcı yüklü GM komut dosyası ile A sayfasını açar.
- GM komut dosyası çalışır ve bir GM_xmlhttpRequest() ile GAE örneğine erişmeye çalışır.
- GAE örneği "login_needed | <loginurl>" değerini döndürür. GM betiği loginurl'u çıkarır ve üzerine
window.location
'u ayarlar. - Kullanıcı, loginurl'e ve en sonunda A'ya yönlendirilir. Ancak, bu kez, gerçek veriler, GM_xmlhttpRequest() tarafından döndürülür.
Kullanıcı şimdi hedef sitede bir 404 verir LoginUrl artı bazı, yönlendirilir olarak son adım artık, çalışır.
GAE kodu kodun yaklaşık yarısı kadardır. Kimlik doğrulama İlgili kod şudur:
if not users.get_current_user():
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('login_needed|'+users.create_login_url(self.request.get('uri')))
şöyle taleplerin dizisi tüm yönlendirmeler nedeniyle, geçerli:
- GET https://mygaeinstance.appspot.com/?uri=https: //targetsite.com/
- GET https://www.google.com/accounts/ServiceLogin?service=ah & pasif = true & devam = https: //appengine.google.com/ _ ah/conflogin % 3Fcontinue% 3Dhttps: //targetsite.com/ & ltmpl = g & ahname = MyGAEInstance & sig = < bir sig >
- GET https://appengine.google.com/ _ h/conflogin? Devam = HTTPS% 3A% 2F% 2Ftargetsite.com% 2F & pli = 1 & yetkilendirme = < belirteci bir base64 kimlik doğrulama >
- GET https://targetsite.com/ _ h/conflogin? durumu = < bir base64 durumu >
goalsite.com bu yolu sevmiyor ve gördüğünüz gibi, "https://targetsite.com/" olan appengine.google.com adresine aktarılan ilk 'devam' argümanında değildi. ". Ne yaptım ve bunu nasıl düzeltebilirim?
Listelenen tüm URL'ler dahili App Engine URL'leri içindir. Targetite.com'a nereye yönlendirilir? –
GAE'deki Kullanıcı API'si, GAE web sitesindeki kullanıcıların kimliğini doğrulamak içindir. Kullanıcıları neden başka bir web sitesine yönlendiriyorsunuz? – olivierlemasle
@NickJohnson: targetite.com adresine geri dönüş, [create_login_url()] (https://code.google.com/appengine/docs/python/users/users/functions.html#create_login_url) çağrısının bir parçası. 'devam', buna 'dest_url' diyorlar. Giriş tamamlandıktan sonra GAE'nin yönlendirdiği yerdir. Bunun neden aniden çalışmayı durdurduğunu anlayamazsam, bir geçici çözümün, GAE örneğime yeniden yönlendirmek için bu bağımsız değişkeni kullanmak ve sonra başka bir yönlendirme kullanarak kullanıcıyı tekrar sitit.com'a yönlendirmek olduğunu düşünüyorum. Şimdiye kadar, bir istek/yanıt döngüsü kaydetmeden yapabilirdim. –