は、私はこのように、accounts.google.comのための私のIAM IDプロバイダで最後のスラッシュを持っていましたスラッシュは間違っています。末尾にスラッシュのないものは正しく動作します。 AWSがそれらの両方に対して同じ拇印を取得するのは興味深いことです。
アカウント>プロバイダ> accounts.google.comのAWS IAMコンソールで、「com.example.yourstuffのAndroidクライアント(Googleサービスによって自動作成)」のキーをオーディエンスとして追加します。 「222222222222-x8x8x8x8x8x8x8x8x8x8x8x8x8x8x8x8x8x8x8x8.apps.googleusercontent.com」のように表示されます(デバッグするときは、残りのすべてのキーをオーディエンスエントリとして使用しますが、後で戻って削除できるものを特定できます。)
GoogleSignInOptions.Builder
への呼び出しでは、あなたはグールのAPI> APIマネージャ]> [資格情報ページでOAuath 2.0クライアントIDの下でWebアプリケーションキーを使用して#requestIdTokenへの呼び出しが必要になります。
GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken("999999whateverxxxx.apps.googleusercontent.com")
.build()
(トークンキャッシュされる可能性があります。requestIdToken呼び出しでアプリケーションを実行した後、requestIdToken呼び出しを削除してもう一度実行すると、GoogleSignInAccouのgetIdToken()呼び出しから結果を得ることができますntオブジェクト)
Googleログインコードは、最終的にあなたにGoogleSignInAccount
オブジェクトを与えます。あなたはIAMに記載されている右キーを持っていない場合
// pseudocode...
private fun fn(x: GoogleSignInAccount) {
val token = x.idToken // getIdToken if you're still using Java
val logins = HashMap<String, String>()
logins.put("accounts.google.com", token);
credentialsProvider.logins = logins
...
:あなたはログインハッシュに入れしようとしている文字列を(私の場合、それは83の文字です)を取得し、そのオブジェクトに#getIdTokenを呼び出し>プロバイダ> accounts.google.comの場合、NotAuthorizedException(Invalid login token. Incorrect token audience.)
例外が発生します。
あなたは余分なスラッシュがaccounts.google.com/することを追加した場合、あなたがaccounts.googleを追加しようとすると、NotAuthorizedException(Token is not from a supported provider of this identity pool.)
を取得します。COM /このようなログインハッシュ(代わりIAMアイデンティティプロバイダ名を修正し、これを行わない)に:
logins.put("accounts.google.com/", token);
あなたはNotAuthorizedException(Invalid login token. Issuer doesn't match providerName)
例外を取得します。
間違ったトークンを使用すると、NotAuthorizedException (Invalid login token. Token signature invalid.)
の例外が発生します。
(私は失敗し、他の多くの方法がある疑いがある;これらは私が見つけた一つだけの者です。)
これらの質問は、関連するようだ:https://forums.aws.amazon.com/thread.jspa? threadID = 250632とhttps://forums.aws.amazon.com/thread.jspa?threadID=170238 –
@LisaMShon残念なことに、これらのスレッドのどちらも正しいクレデンシャルを取得する古い方法について話しています。新しいシステム。 –
IDは同じ地域から生成されるべきだと思います。 –