0

これまでに何度も聞かれるかもしれない質問がありますが、私は質問の枠組みに苦労しています。AWS User Pool + Fedration IdentityのトークンリフレッシュシステムをAndroidで処理する

awt cognitoは、IDToken +認証プロバイダをCognito IDフェデレーションに渡す必要があるため、1時間有効な一時的な資格情報を提供します。だから1時間後に何が起こるのですか、私は認証例外を取得します。

これで、CognitoCachingCredentialProviderは、指定されたタスクを実行する前にリフレッシュしようとしましたが、ラムダを実行したりdynamodbクエリを実行したりします。しかし、有効期限を処理し、リフレッシュをインターセプトし、トークンを最初にフェッチし、それをcredentialproviderに設定してからリフレッシュを続行する良い方法は何ですか。

UserPool IDTokenまたはGoogleのIDTokenのいずれかである必要があります。資格情報の有効期限が切れているかどうかを知る方法と、リクエストを処理する前にプロバイダから新しいIDTokensを取得して認証情報を更新する必要があります。

私は時間単位のタスク(実際には55分)を試しましたが、時にはこれまで動作しておらず、あまり信頼性がありません。

おかげ

答えて

0

それはちょうど権利を取得するために少しトリッキーだが、それを処理するための2つの一般的な方法があります。

トークンの有効期限を追跡し、期限切れのしきい値内にある場合は更新します(たとえば、有効期限が切れてから<に更新するなど)。

もう1つは、盲目的にリフレッシュしようとしてから、トークンが期限切れになったときにスローされた例外をキャッチしてそこでリフレッシュまたは再試行することです。あなたがこのルートに行くなら、一度そこにリトライするだけで、要求が正しければサービスを迷惑させないように注意してください。

関連する問題