8

AccountManagerを使用してトークンを取得するAndroidアプリケーションを作成しています。Androidアプリから、GooglePicasaを操作できます。正常に動作します。

私が達成したいのは次のとおりです。テキストとauthTokenをサードパーティのサーバーに送信し、テキストを保存する前にトークンが正しいかどうかを確認します。ここで問題となるのは、特定のトークンのauthTokenがトークン自体(および場合によっては電子メールアドレス)のみで正しいかどうかを判断することは可能かどうかです。

トークンを受け入れ(Androidアプリケーションから送信)、URLアドレスにリクエストを発行するサーバー部分をすでにプログラムしました。

https://accounts.google.com/o/oauth2/tokeninfo?access_token=%token_here%

私が返すのは次のJSONです:

{
  "error" : "invalid_token"
}

ただし、ここのリンクhttp://oauthssodemo.appspot.com/step/4には、トークンが正しい場合は別のJSON応答を受信する必要があると記載されています。私が間違っていることを教えてください。トークンの有効性をチェックする方法は実際にはそれほど単純ではないと思いますが、openid全体などを実装する必要があります。その場合でも、Androidアプリから送信されたトークンが正しいかどうかを確認して、メッセージの「テキスト」部分を保存するにはどうすればよいですか。

ありがとうございました。

4

5 に答える 5

7

AccountManager の使用をやめて、Google Play サービスの GoogleAuthUtil クラスを使用するようにすると、簡単になります。http://android-developers.blogspot.ca/2013/01/verifying-back-end-calls-from-android.htmlを参照してください。

于 2013-01-25T01:09:33.800 に答える
2

解決策は次のとおりです。次の URL でトークンを確認できます。

https://accounts.google.com/o/oauth2/tokeninfo?access_token=%token_here%

しかし、私の場合、ここでわかるように、「アクセストークン」ではなく「認証コード」を検証しようとしていました: https://code.google.com/oauthplayground/

Android と OAuth を使用している場合は使用しないでください

lh2 

代わりに、サービス名として次を使用します。

http://picasaweb.google.com/data/

したがって、次のように getAuthToken を呼び出す必要があります

getAuthToken(account, "http://picasaweb.google.com/data/" , true, null, null);

次に、上記の URI でこの呼び出しから受け取ったトークンを検証できます。

于 2012-04-05T10:35:12.267 に答える
1

これを読む https://developers.google.com/accounts/docs/OAuth2WebServer

Web サーバーは認証コードを受信した後、認証コードをアクセス トークンとリフレッシュ トークンに交換する場合があります。このリクエストは HTTPS ポストであり、次のパラメータが含まれています。

于 2012-07-19T10:23:12.330 に答える
1

タスクを完全に実行するパスポート-グーグル-トークンパスポート戦略に出くわしました。

https://www.npmjs.com/package/passport-google-token

詳細は上記リンク先にあります。

于 2015-03-27T07:33:41.257 に答える