2009-10-05 13 views
8

Zajmuję się tworzeniem aplikacji Django, która używa python-openid. Aplikacja działa na moim serwerze programistycznym w domu.Google OpenID/federacyjne logowanie okresowo się nie udaje

Podobny do mechanizmu logowania stackoverflow, chciałbym, aby użytkownicy logowali się do mojej witryny przy użyciu swoich danych logowania Google.

Kod, który zaimplementowałem, działa dobrze przez kilka tygodni, a następnie przestaje działać. Utknąłem podczas logowania na następującej stronie Google: https://www.google.com/accounts/o8/ud z tym komunikatem: "Żądana strona jest nieprawidłowa." Losowo zacznie znowu działać, ale nie uda się co kilka tygodni.

Przechodzi logowania Yahoo pracował przez kilka miesięcy, a dziś przestał działać z następującym komunikatem: „Ta strona wygasła, wróć do poprzedniej strony i spróbuj ponownie” na tej stronie: https://open.login.yahooapis.com/openid/op/auth

Oto wniosek, jak schwytany przez livehttpheaders dla Google:

https://www.google.com/accounts/o8/ud 

POST /accounts/o8/ud HTTP/1.1 
Host: www.google.com 
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.10) Gecko/2009042513 Ubuntu/8.04 (hardy) Firefox/3.0.10 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8  
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip,deflate 
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 
Keep-Alive: 300 
Connection: keep-alive 
Referer: http://127.0.0.1:8000/users/login/ 
Content-Length:907 
openid.ax.if_available=ext1&openid.mode=checkid_setup&openid.ns=http://specs.openid.net/auth/2.0&openid.realm=http://127.0.0.1:8000/accounts/login/&openid.return_to=http://127.0.0.1:8000/users/login/finish/?janrain_nonce=2009-10-05T19%3A10%3A11ZtioiRm&openid.ax.count.ext1=unlimited&openid.ax.mode=fetch_request&openid.sreg.optional=email&openid.claimed_id=http://specs.openid.net/auth/2.0/identifier_select&openid.ns.sreg=http://openid.net/extensions/sreg/1.1&openid.ns.ax=http://openid.net/srv/ax/1.0&openid.identity=http://specs.openid.net/auth/2.0/identifier_select&openid.assoc_handle=AOQobUcnzec0bpeZRztjqPrr5TQUA0aPL7SIuOPOMgWxex2HRAP09AyJ&openid.ax.required=ext0&openid.ax.type.ext0=http://schema.openid.net/namePerson&openid.ax.type.ext1=http://schema.openid.net/contact/web/default 

HTTP/1.x 400 Bad Request 
Cache-Control: no-cache, no-store, max-age=0, must-revalidate 

nie jestem pewien, co się tu dzieje, i chciałbym jakąś pomoc.

+0

Czy to się nie udaje? W kółko przez cały dzień? Jakie są okoliczności, z którymi zaczyna działać ponownie? –

+0

Mam problem podobny do twojego. ale niektóre, o ile gorzej! Nie mam problemu z logowaniem użytkownika, ale co drugi dzień ciąg znaków dostarczany przez google powinien być niepowtarzalny! więc użytkownicy nie mogą już logować się na swoich kontach w mojej witrynie. Nie wiem, co się dzieje. –

Odpowiedz

0

możesz skonstruować URI i przekierować użytkownika do URI metodą GET. Jeśli robisz POST google spodziewa się niektórych nagłówków, które moim zdaniem nie zostały wspomniane. Sprawdź żądanie sample. Próbowałem z GET bez python-openid działa całkiem nieźle.

Powiązane problemy