2011-10-21 18 views
8

Şu anda http://facebooksdk.codeplex.com kullanarak facebook bağlantısının OAuth uygulamasını test ediyorum.Facebook Doğrulama ve garip yönlendirme davranışı

Ben LogOn ve geri arama denilen 2 basit eylemlerle bir FacebookController var.

Her şey iyi çalışıyor ve kullanıcı sistemimde doğru bir şekilde günlüğe kaydediliyor.

sorun Geri arama eylemi çağrıldığında, garip bir şey olduğunu aşağıdaki karakterlerle doğru oturum açan url basit

return Redirect(loggedUrl); 

yönlendiriliyor yapar ama biten hâle mi: #_=_

O anlaşılıyor Facebook sunucusu, aşağıdaki HTTP üstbilgisini kullanarak web sunucusuna bilgileri gönderir:

HTTP/1.1 302 Found 
Cache-Control: private, no-cache, no-store, must-revalidate 
Expires: Sat, 01 Jan 2000 00:00:00 GMT 
Location: http://mywebsite.com/Facebook/CallBack/?state=1&code=AQCXexr10uxANSBOu9JqrBDxqPkWbsyxM1S9ltuY9XwCXW7eGsOII329SthClxOSM_a7wJvwrXh1_O3D5I7E_nxCDTWDLpyYdMpMUfw4zMWcQ4oV2PmRkIMd2NfPYRKlkLgkurEzka1CjAF1jp8Xb3crklOB59W4IT7LZy6MEmFusuhSKacmsTcV1LAOW4uJ3K4#_=_ 
P3P: CP="Facebook does not have a P3P policy. Learn why here: http://fb.me/p3p" 
Pragma: no-cache 
Set-Cookie: locale=en_US; expires=Fri, 28-Oct-2011 00:09:38 GMT; path=/; domain=.facebook.com 
Content-Type: text/html; charset=utf-8 
X-FB-Server: 10.43.103.61 
X-Cnection: close 
Date: Fri, 21 Oct 2011 00:09:38 GMT 
Content-Length: 0 

Gördüğünüz gibi Konum değerinin sonunda bulunan #_=_ karakterlerini bulun.

Redirect, otomatik olarak sessize eklenmeyenleri ekleyerek #_=_ karakterlerini hesaba katıyordu.

Ben return Redirect("/"); ile deneyin bile

, #_=_ herhangi bir fikir gerçekten takdir

... hiçbir yerde benim yönlendirildi url (neredeyse) dan eklenir.

Herhangi bir cevap için şimdiden teşekkür ederiz.

Selamlar,

LB

+1

Bu, jQuery Mobile'ın URL'sinin dinlemesiyle ilgili sorunlara neden oldu. '$ .mobile.hashListeningEnabled = false;' çözüldü. –

cevap

2

Facebook verdikleri yanıt sonuna bu # = karakterleri ekleyerek son zamanlarda kimlik doğrulama mekanizması değiştirdi. Dizenin sonundaki # sembolü aslında problemi yaratıyor. Yani sorguyu kesebilir ve iyi çalışacak yönlendirmeyi yapabilirsiniz.

+0

Sorguyu kesmek için ne demek istiyorsunuz? – capdragon

+0

@capdragon: URL'yi getirin, # = sonunu kaldırın ve herhangi bir yöntemle (ajax, yönlendirme vb.) Url requrest dosyasını yeniden gönderin. –