2

Android アプリからのバックエンド呼び出しの検証に関するブログ投稿 ( http://android-developers.blogspot.tw/2013/01/verifying-back-end-calls-from-android.html ) に従って、Android から送信されたトークンを検証しました。 Java のクライアント。

Java 用 Google クライアント ライブラリを使用したブログ投稿のサンプル コードを使用します ( http://code.google.com/p/google-api-java-client/downloads/detail?name=google-api-java-client- 1.17.0-rc.zip&can=2&q= )。

ただし、GoogleIdToken.Payload check(String tokenString)サンプル コードのメソッドは null を返す場合があります。なりすましを防ぐために、payload.getAudience() と payload.getAuthorizedParty() を使用したいので、非常に面倒です。ペイロードが null の場合、NullPointerException が発生します。

どうすれば問題を解決できますか?

4

2 に答える 2

1

try/catch があり、verify() 呼び出しから例外が発生していないことを確認したと思いますか?

null を返すことは、検証に失敗したことを意味します。これが発生する理由は次のとおりです。

  • あなたはオフラインです。コードは署名を確認するために Google 証明書を取得できません
  • トークンの有効期限が切れています。彼らの寿命は通常わずか1時間です
  • どういうわけかトークンが変更されたため、署名は無効になりました

トークンが有効であることが確実であるにもかかわらず、verify() 呼び出しが null を返す場合は、バグを報告してください。

于 2013-09-20T15:12:24.780 に答える