2016-12-15 25 views
0

私のアプリケーションで、ユーザーが別のデバイスから再度サインインしているときに特定のユーザーのすべての以前のユーザープールセッションを無効にしたい。しかし問題はグローバルサインアウトを呼び出した後で、以前のデバイスのセッションがまだ有効であることです。パスワードを変更した後でも、以前のデバイスのセッションはまだ存在します。Android AWS Cognito UserPool複数のデバイスからユーザーがサインインしているときにglobalSignoutが機能しない

userPool.getUser("xyzzz").getSessionInBackground(authenticationHandler); 

以前のデバイス上のコードの上に呼び出した後、それが直接、新しいトークンを使用してユーザーセッションを返す代わりに、パスワードの入力をgetAuthenticationDetailsを呼び出します。

Cognitoユーザーのために一度に1つのセッションしか持たない方法はありますか。

答えて

0

グローバルサインアウトを呼び出すと、Cognitoは特定のユーザーに関連付けられているすべてのアクセストークンとリフレッシュトークンを無効にします。それはまだ使用できるように、idトークンを無効にしません。

AndroidでgetSessionInBackgroundを実行しようとすると、返されるトークンが有効かどうか(有効期限が有効な場合)がチェックされます。ただし、アクセスとリフレッシュトークンを使用しようとすると、動作しません。 idトークンを使用すると、1時間後に有効期限が切れます。これを再現するための正確なステップを与えることができれば、さらに調査することができます。

+0

私のアプリでは、API呼び出し(APIゲートウェイ)を承認するためにIdトークンを使用しています。私の懸念は、Idトークンを無効にするか、または有効期限を5〜10分に減らす方法があることです。他のデバイスのパスワードを変更した後も、認証の詳細を確認せずにセッションを戻します。ですから、もしidトークンを無効にし、他のデバイス上のユーザーセッションを無効にする方法があれば教えてください。 –

+0

こんにちは、私が言及したように、idトークンの妥当性は1時間であり、グローバルサインアウトはそれを無効にしません。有効性も設定できません。他のすべてのトークンは無効になります。これをお寄せいただきありがとうございます。チーム内で機能要求として言及し、それに応じて優先順位を付けることにします。 –

+0

実際に、最初の質問では、APIゲートウェイでトークンを使用しているとは指定していません。 STS、CIB、API Gatewayなどの外部サービス(ユーザープールではない)にアクセスする場合、ユーザーが削除、無効、グローバルにログアウトしても有効期限が切れていれば、アクセストークンとIDトークンは引き続き機能します。 –

関連する問題