3

GAE サーバーと通信するデスクトップ Java アプリケーションがあります。クライアント アプリケーションは、提供されたエンドポイント (appname.appengine.com/_ah/OAuthGetAccessToken など) を介して OAuth 1.0 とサインポストを使用してサーバーにサインインします。ログイン プロセスは正常に機能しているようです。

  1. リクエストトークンを取得
  2. ユーザーが結果の認証 URL にアクセスできるようにする
  3. ユーザーに確認コードを求める
  4. アクセストークンを取得する

この時点で、一見有効なトークンとトークン シークレットがあります。これらを使用して GAE サーバーへのリクエストに署名すると、ユーザーを識別するときにOAuthRequestExceptionが発生します。

OAuthService oauthService = OAuthServiceFactory.getOAuthService();
try {
    user = oauthService.getCurrentUser();
    if (user != null) {
        ri.userName = user.getEmail();
    }
} catch (OAuthRequestException t) {
    t.printStackTrace();
}

これは今朝まで問題なく動作していましたChrome to Phone GAE バックエンドの修正版を使用しています。Chrome to Phone にも同じ問題があることに気付きました。サービスにログインできなくなったので、これはクライアント側のエラーではないと思います。ログインは、 Google 接続済みのサイト、アプリ、およびサービス コンソールに表示されません。Chrome to Phone の GAE サービスで影響を受ける行へのリンクは次のとおりです: Chrome2Phone 影響を受けるソース

私はすでにアプリケーションを Google API コンソールに登録しようとし、コンシューマー キーとシークレットを提供しましたが、結果は同じでした。

4

2 に答える 2

4

認証システムにバックエンドの変更を加えた結果、認証システムに依存する App Engine コードと互換性がなくなりました。これはかなり単純な問題のようで、現在修正を進めています。解決の正確なタイムラインはまだありませんが、すぐになると予想しています。


更新: 太平洋標準時午後 8 時頃に、修正プログラムが本番環境にロールアウトされました。皆様、ご辛抱いただきありがとうございます。

于 2013-02-07T22:37:59.947 に答える
2

これは正確な答えではありませんが、組み込みの oauth プロバイダー ライブラリ ( ) を使用する Python アプリ エンジン アプリでも同じ新しい動作が見られgoogle.appengine.api.oauthます。既存の保存済みトークンは引き続き機能しますが、新しいトークンを要求し、それを使用して保護されたサービスを呼び出すと、InvalidOAuthTokenError. これは、昨夜 (CST のほぼ真夜中) まで問題なく動作していた変更されていないコンシューマーとプロバイダーのコードによるものです。

于 2013-02-06T17:02:19.057 に答える