2009-10-05 4 views
8

저는 python-openid를 사용하는 장고 앱을 개발하고 있습니다. 응용 프로그램이 집에서 개발 서버에서 실행됩니다.Google OpenID/연합 로그인이 정기적으로 실패합니다.

stackoverflow의 로그인 메커니즘과 비슷하게 사용자가 Google 자격 증명을 사용하여 내 웹 사이트에 로그인하도록합니다.

이 작업을 수행하기 위해 구현 한 코드는 2 주 동안 잘 작동 한 다음 작동을 멈 춥니 다. 다음 Google 페이지에서 로그인 프로세스 중에 멈 춥니 다. https://www.google.com/accounts/o8/ud 메시지와 함께 : "요청한 페이지가 유효하지 않습니다." 그것은 무작위로 다시 작업을 시작하지만 몇 주마다 실패합니다. 야후의 로그인을 통해가는

달 동안 일했으며, 현재는 다음과 같은 메시지와 함께 작동이 중지되었습니다 : "이 페이지는 만료, 원래의 페이지로 돌아가서 다시 시도하십시오"이 페이지에 : 다음은 https://open.login.yahooapis.com/openid/op/auth

구글 LiveHttpHeaders에 의해 포착 요청 :

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 

는 여기에 일어나고, 어떤 도움을 사랑하는 것이 무엇인지 모르겠어요.

+0

한 번 실패합니까? 하루 정도? 다시 일하기 시작한 상황은 무엇입니까? –

+0

당신과 같은 문제가 있습니다. 하지만 얼마나 더 나쁜지! 나는 사용자를 로깅하는 데 아무런 문제가 없지만, 다른 날에는 Google에서 제공하는 ID 문자열이 고유 한 변경 사항이어야합니다! 그래서 사용자는 더 이상 내 사이트에서 자신의 계정으로 로그인 할 수 없습니다. 나는 어떻게되는지 모른다. –

답변

0

사용자는 uri를 구성하고 사용자를 GET 메소드를 사용하여 uri로 리디렉션 할 수 있습니다. POST를하고 있다면 Google은 문서를 언급하지 않았다고 생각하는 일부 헤더를 예상합니다. sample 요청을 확인하십시오. 나는 python-openid없이 GET을 시도했지만 꽤 잘 돌아 간다.

관련 문제