2009-10-05 10 views
8

私はpython-openidを使用するDjangoアプリケーションを開発しています。アプリは自宅の開発サーバーで実行されています。Google OpenID/federatedログインは定期的に失敗します

stackoverflowのログインメカニズムと同じように、私はユーザーに自分のGoogle資格情報を使って自分のウェブサイトにログインさせたいと思います。

これを実行するために実装したコードは、数週間はうまくいき、動作を停止します。次のGoogleページのログイン処理中に「https://www.google.com/accounts/o8/ud」というメッセージが表示され、「リクエストしたページが無効です」というメッセージが表示されるそれはランダムに作業を再開しますが、数週間おきに失敗します。 Yahooのログインを通って行く

は数ヶ月のために働いて、そして今日は、次のメッセージを表示して動作を停止しました:「このページの有効期限が切れている、元のページに戻って、もう一度試してください」このページに:ここでhttps://open.login.yahooapis.com/openid/op/auth

Googleのために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

一度失敗しますか? 1日かそこら何度も何度も?それが再び働き始める状況は何ですか? –

+0

私はあなたのような問題があります。いくつかのどれくらい悪い!私はユーザーのログインには問題ありませんが、一日おきに、Googleによって提供される識別文字列はユニークな変更でなければなりません!ユーザーは自分のサイトの自分のアカウントでもうログインできなくなります。私は何が起こるのか分からない。 –

答えて

0

使用しているコードが不正なURLリクエストを生成しているようです。実際のURLはhttps://www.google.com/accounts/o8/idです。最後に「ud」を「id」で変更して修正してください。

希望すると便利です。

0

あなたはuriを構築し、GETメソッドを使ってuriにユーザをリダイレクトすることができます。あなたはPOSTのGoogleをしている場合私はそれがドキュメントを言及されていないと思ういくつかのヘッダーを期待しています。 sampleリクエストを確認してください。私はpython-openidなしでGETを試してみましたが、これはかなりうまくいきます。

関連する問題