0

Hier ist die Frage, die möglicherweise schon mehrmals gefragt werden, aber ich habe Schwierigkeiten, eine Abfrage zu gestalten.Umgang mit AWS User Pool + Fedratation Identity-Token-Refresh-System in Android

So aws cognito funktioniert, da Sie den IDToken + Authentifizierungsanbieter an die Cognito Identity Federation übergeben müssen und die temporären Anmeldeinformationen für eine Stunde gültig sind. Was nach einer Stunde passiert ist, bekomme ich Authentication Exception.

Jetzt beobachtete ich, dass CognitoCachingCredentialProvider versucht, vor der Ausführung der gegebenen Aufgabe zu aktualisieren, sagen wir, führen Sie Lambda aus oder machen Sie dynamodb query. Aber was ist ein guter Weg, um den Ablauf zu behandeln, abzufangen, das Token zuerst zu holen und es auf credentialprovider zu setzen und dann mit der Aktualisierung fortzufahren.

Es mag UserPool IDToken oder Googles IDToken sein, alles was ich wissen muss ist, ob Anmeldeinformationen abgelaufen sind und ich die neuen IDTokens von den Providern holen und die Zugangsdaten vor der Verarbeitung der Anfrage aktualisieren muss.

Ich habe stündliche Aufgabe (55 Minuten tatsächlich) versucht, aber manchmal wird es nicht funktionieren und bisher nicht sehr zuverlässig.

Dank

Antwort

0

Es ist ein bisschen schwierig, genau das Richtige zu bekommen, aber es gibt zwei gängige Möglichkeiten, es zu behandeln.

Eine ist zu tun, was Sie vorgeschlagen - verfolgen, wenn das Token wurde verkauft, und dann aktualisieren, wenn es innerhalb eines Schwellenwerts abläuft (z. B. aktualisieren, wenn es < 5 Minuten ab Ablaufdatum ist).

Die andere ist blind zu versuchen, zu aktualisieren, fangen Sie dann die Ausnahme, die ausgelöst wird, wenn ein Token abgelaufen ist und aktualisieren/wiederholen dort. Wenn Sie diesen Weg gehen, sollten Sie darauf achten, dass Sie nur einmal dort versuchen, damit Sie den Dienst nicht spammen, wenn die Anfrage nicht genau richtig ist.

Verwandte Themen