如何在AWS Cognito

时间:2018-04-17 09:14:13

标签: android amazon-web-services aws-sdk aws-cognito

我的应用程序使用AWS Cognito。因此,使用 setLogins()方法,我将设置身份令牌以传达AWS Cognito。在此之后,我可以使用使用身份令牌初始化的mCognitoSyncManager成功调用AWS。

所以,我的问题是:

1)如何使用新生成的令牌刷新令牌?

1.1)我知道的一件事是,我用新令牌初始化了CredentialsProvider。但我不想这样做。

2.1)AWS是否会要求我返回新令牌。如果是这样,它将如何问我。

你能帮助我吗?最近两天我一直在努力。

代码如下:

 void initCognito() {

     mCredentialsProvider = new CognitoCachingCredentialsProvider(mContext, IDENTITY_POOL_ID, Regions.US_EAST_2);

     Map<String, String> logins = credentialsProvider.getLogins();

     if (logins == null) {
        logins = new HashMap<String, String>();
     }

     logins.put(DOMAIN, "token");

     credentialsProvider.setLogins(logins);

     mCognitoSyncManager = new CognitoSyncManager(mContext, Regions.US_EAST_2, credentialsProvider);

 }

1 个答案:

答案 0 :(得分:0)

我对你的要求感到有点困惑,所以让我先根据自己的理解总结你的问题。

您之前已经从登录系统获得了JWT,并且能够成功使用它来使用Cognito获取AWS凭据。现在,您的登录系统中有一个新的(或刷新的令牌),并希望将其与Cognito一起使用。

如果这是正确的,那么您需要做的是在使用credentialsProvider.refresh设置新令牌后致电credentialsProvider.setLogins

请查看API文档(https://docs.aws.amazon.com/AWSAndroidSDK/latest/javadoc/com/amazonaws/auth/CognitoCachingCredentialsProvider.html#setLogins-java.util.Map-以获取更多信息。