問題タブ [oauth2client]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - oAuth2 で Google サインインを実装する方法がわかりません
Web アプリケーションのログイン機能を作成しようとしており、ここに記載されているガイドに従っていますhttps://developers.google.com/identity/sign-in/web/server-side-flow
私はほとんどすべてをコピーして自分の情報に置き換える指示に従いました。何が起こっているのかを理解できるように、できるだけ基本的なものにしておきたいと思います。
認証用の Python アプリケーションを次に示します。Google Web サイトで説明されていないため、他の例を見つける必要があったため、http 要求を間違って実行したと思います。Web サイトは auth_code をhttp://localhost:5000/auth_codeに送信する必要があり、web.py はそれをリッスンし、成功した場合は電子メールを出力します。
web.py
これは、Web ページを提供するための Python アプリです。
ホスト.py
これは Web ページの HTML です。
python - Google OAuth2client - invalid_grant: トークンが取り消されました
この方法を使用して、Google のクラウド リソース マネージャーでプロジェクトを出力する基本的なアプリを作成しています: https://cloud.google.com/resource-manager/reference/rest/v1/projects/list
昨日は機能しましたが、トークンを取り消しましたが、コードは再認証を求めません。
ファイル「oauth2client/client.py」、834 行目、_do_refresh_request で HttpAccessTokenRefreshError(error_msg, status=resp.status) を発生させます oauth2client.client.HttpAccessTokenRefreshError: invalid_grant: トークンが取り消されました。
トークンが有効かどうかを確認し、そうでない場合はユーザーをブラウザにポップアウトするようにクライアントに指示する方法があると思いますが、それを行うコードを取得できないようです。助けていただければ幸いです;)
python - oauth2client ライブラリを使用して Google 以外の API にアクセスする
Pythonでoauth2client
とライブラリの使用を評価しようとしています。oauth2
一部のGoogle APIを使用するために、サーバーに前者を既にインストールしています。
現在、同じライブラリを使用して外部 API も使用する方法を見つけようとしています。私はそうする例を見つけようとしていました。ただし、オンラインでほとんどの情報源を読んでいるように、oauth2client
主に Google API に関するものです。
このトライアルの背後にある考え方はoauth2
、サーバーにパッケージをインストールせずにこの要件をなくすことができるかどうかを確認することです。
認証に oauth を使用する外部 API でこのパッケージがサポートされていないことをドキュメントで見つけるoauth2
ことができなかったので、セキュリティの専門家は私を適切に案内してくれるかもしれません。oauth2client
https://oauth2client.readthedocs.io/en/latest/#これは言う..
oauth2client
OAuth2 で保護されたリソース、特にGoogle API に関連するリソースとのやり取りが容易になります
私は Python で実行しており、必要な API を取得するためにkey
とsecret
を持ってurl
います。GET
お知らせ下さい。
google-api - Google プロバイダーを使用した HybridAuth は、認証時にランダムに「invalid_request」を返します
Google OAuth2 を使用して、HybridAuth 2.4.0 を使用してユーザーを内部アプリケーションに認証します。約 1 週間前まではうまくいっていましたが、https: //accounts.google.com からのランダムな「invalid_request」応答がますます見られるようになりました。 /o/oauth2/token .
私が「ランダム」と言うとき、今日はより可能性が高いです: 動作せず、その後約 1 分間体系的に動作し (連続する複数の認証が成功します)、再び動作を停止します (つまり、「invalid_request」応答)。
HybridAuth の最新バージョン (2.8.0、現在は 2.8.1) へのアップグレードを試みましたが、発生した問題は修正されませんでした。
また、サーバー時刻を確認し (NTP 同期されており、良好です)、新しい Google API シークレットの生成を試み、新しい Google API プロジェクトを作成しましたが、うまくいきませんでした。
OAuth2認証が常に機能するローカルDEV環境があるため、これは環境/サーバーの問題であると考えています。また、Google API プレイグラウンドを使用し、PROD サーバーと同じペイロードを使用してhttps://accounts.google.com/o/oauth2/tokenにリクエストを行うと、「Bearer」access_token が取得されます。
一部の HybridAuth デバッグ ログ:
さらに調査するためにどの方向に進むべきかについての手がかりは非常に高く評価されます:)
python - OAuth2 access_tokenを指定してPython Google APIクライアントサービスを承認する方法は?
Django プロジェクトに Google OAuth2 用のpython-social-authライブラリを実装し、それを使用してユーザーを正常にログインさせることができました。ライブラリは、access_token
Google の OAuth2 フローの応答で受信した を保存します。
私の質問は次のとおりです: google-api-python-client のcredentials
使用は、オブジェクトの作成と承認に依存してservice
いるようです。
私は python-social-auth によって提供されたものから始めているので、将来の API 呼び出しのためaccess_token
に API クライアントを作成して承認するにはどうすればよいですか?service
編集:明確にするために、上記のコードはGoogleが提供する例からのものです。
python - Python 2.7.11 httplib2 は、SSL SNI Web サイトの間違った証明書に対して CERTIFICATE_VERIFY_FAILED をスローします
複数の URL からアクセスできる Web サイトがあり、そのうち 2 つは SSL SNI を使用して提供される SSL 証明書を持っています (全体は nginx を使用して提供されます)。
このセットアップは、両方の証明書が有効である限り、ブラウザーと Web サイトを監視する Python 2.7.11 コードで正常に機能しました。
最近、証明書の 1 つが期限切れになりました。これは、何にも使用されていないものです (受信トラフィックにも監視にも使用されていません)。これは、Web サイトにアクセスするブラウザーには影響しませんでしたが、監視用の Python スクリプトで次のようなエラーが発生し始めました。
注: 有効な証明書が 1 つと期限切れの証明書が 1 つあります。問題は、有効な証明書を使用して URL を通過しても、期限切れの証明書が原因で例外がスローされることです。
で確認しrequests
たところ、期限切れの URL にアクセスすると予期される SSL エラーが発生しましたが、「適切な」URL に問題なくアクセスできました。したがって、これは SNI 証明書の httplib2 処理に固有の問題であると思われます。
残念ながら、requests
これは外部ライブラリであるため、このフローで切り替えることはできません (スタック トレースに表示されるように - oauth2client
)。
新しい有効な SNI 証明書をインストールする (または非 SNI 証明書に切り替える) 以外に、これについて他にできることはありますか?
更新: この場合に有効な回避策を見つけました。
nginx で SSL SNI を提供する場合、デフォルトの証明書を設定する必要があります。この場合、デフォルトの証明書は有効期限が切れたものであることがわかりました。デフォルトの証明書を有効なものに変更すると、エラーはなくなりました。
この回避策により、httplib2 SSL SNI 実装にバグがあると思われます。要求されたドメインの証明書でなくても、デフォルトの証明書の検証が必要なようです。
django - Django を使用して Google アナリティクス データにアクセスする
Google アナリティクスのデータを適切にフォーマットしてユーザーに表示するための非常にシンプルなダッシュボードを作成しようとしています。
私はoAuth2Clientと Django 1.10.4 と Python 3.5 を使用しています。
ドキュメント内の例に従って、非常にシンプルなアプリを作成しました。ランディング ページでログインを求められ、リンクをクリックして承認すると、Google ページが読み込まれ、GA データを共有するかどうかを尋ねられます。同意すると、ログインしている場合にのみ表示されるページにリダイレクトされます。これまでのところ、すべて問題ありません。
しかし、実際にユーザー データを取得することはできません。たとえば、ユーザー アカウントのプロパティのリストや、先週のプロパティのページ ビュー数などを取得する最善の方法は何ですか?
これまでの私のコードは次のとおりです。
/pools/models.py
urls.py
設定.py
だから私の問題は、Djangoがその特定のユーザーのデータにアクセスするためにトークンを保存する場所を本当に理解していないことです.電子メールアドレスを正しく出力するなどの理由で機能することはわかっていますが、何を追加すればよいかわかりませんdef google_analytics(object):
実際に特定の Google API メソッドを取得します。
誰かがこの種のことについて経験を持っているなら、私は本当に助けていただければ幸いです! ありがとう!
python - iOS アプリから Google API へのサーバー側のオフライン アクセスを有効にする
ユーザーが iOS アプリから認証する Google API へのサーバー側のオフライン アクセスを有効にしようとしています。これは、サーバーが iOS アプリ外の Google API に継続的にアクセスできるようにするためです。
Google は以下のアプローチを文書化しています: https://developers.google.com/identity/sign-in/ios/offline-access
私はベアボーンプロジェクトで彼らのドキュメントを正確にフォローしました。ただし、ワンタイム認証コードをアクセス トークンとリフレッシュ トークンに交換しようとすると、交換中に「redirect_uri_mismatch」エラーが発生します。
私はフォーラムを検索し、Google API プロジェクト OAuth 2.0 クライアント ID (Google 開発者コンソールから) をリダイレクト URI なしで構成することを推奨する多くの人々を検索しました。ただし、これにより、「クライアント タイプ "web" にプロパティ "redirect_uris" がありません」というエラーが発生します。
他の OAuth 2.0 クライアント ID タイプ (Other など) も試しましたが、うまくいきませんでした。
このフローを機能させることができた人はいますか? どんな助けでも大歓迎です!