我的应用程序使用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);
}
答案 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-以获取更多信息。