我试图将认知身份池与android应用程序集成,首先需要能够从未经身份验证的用户访问AWS资源。我使用的是Cognito控制台中提供的示例代码,但当我试图运行该部分时,我总是收到错误。我创建了一个只有一个按钮的沙箱环境,它所做的就是运行Cognito控制台提供的代码。
代码如下:
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
getApplicationContext(),
"[IDENTITYPOOLID]", // Identity pool ID
Regions.US_EAST_1 // Region
);
以下是错误:
I/AWSKeyValueStore: Detected Android API Level = 30
Creating the AWSKeyValueStore with key for sharedPreferencesForData = com.amazonaws.android.auth
E/AWSKeyValueStore: com.amazonaws.internal.keyvaluestore.KeyNotFoundException: Error occurred while accessing AndroidKeyStore to retrieve the key for keyAlias: com.amazonaws.android.auth.aesKeyStoreAlias
I/AWSKeyValueStore: Deleting the encryption key identified by the keyAlias: com.amazonaws.android.auth.aesKeyStoreAlias
E/AWSKeyValueStore: Error in retrieving the decryption key used to decrypt the data from the persistent store. Returning null for the requested dataKey = [IDENTITYPOOLID].identityId
D/CognitoCachingCredentia: Loading credentials from SharedPreferences
E/AWSKeyValueStore: com.amazonaws.internal.keyvaluestore.KeyNotFoundException: Error occurred while accessing AndroidKeyStore to retrieve the key for keyAlias: com.amazonaws.android.auth.aesKeyStoreAlias
I/AWSKeyValueStore: Deleting the encryption key identified by the keyAlias: com.amazonaws.android.auth.aesKeyStoreAlias
E/AWSKeyValueStore: Error in retrieving the decryption key used to decrypt the data from the persistent store. Returning null for the requested dataKey = [IDENTITYPOOLID].expirationDate
E/AWSKeyValueStore: com.amazonaws.internal.keyvaluestore.KeyNotFoundException: Error occurred while accessing AndroidKeyStore to retrieve the key for keyAlias: com.amazonaws.android.auth.aesKeyStoreAlias
I/AWSKeyValueStore: Deleting the encryption key identified by the keyAlias: com.amazonaws.android.auth.aesKeyStoreAlias
E/AWSKeyValueStore: Error in retrieving the decryption key used to decrypt the data from the persistent store. Returning null for the requested dataKey = [IDENTITYPOOLID].identityId
Pixel 3 XL API 30
Pixel 2 API 27
implementation 'com.amazonaws:aws-android-sdk-cognitoidentityprovider:2.16.12'
implementation 'com.amazonaws:aws-android-sdk-core:2.16.12'
标识池启用了对未经身份验证的标识的访问,并具有与未经身份验证的标识相关联的角色。请提供有关如何使credentialsProvider工作以便与标识池中的其他AWS服务一起使用的建议。
我遇到了同样的问题
020-10-03 08:07:14.759 11293-11293/com.example.uanddus i/AWSKeyValueStore:用sharedPreferencesForData=com.amazonaws.android.auth 2020-10-03 08:07:14.772 112 93-11293/com.example.uanddus e/AWSKeyValueStore:com.amazonaws.internal.keyValueStore检索keyalias:com.amazonaws.android.auth.aeskeyStoreIas的密钥时出错
以下是我所做的对我有效的事情:
>
aws配置文件中缺少详细信息。确保在app/res/raw中有awsconfiguration.json,并包含以下内容
{ "Version": "0.1.0", "IdentityManager": { "Default": {} }, "CredentialsProvider": { "CognitoIdentity": { "Default": { "PoolId": "us-east-1:XXXXX", "Region": "us-east-1" } } }, "CognitoUserPool": { "Default": { "AppClientId": "XXXXX", "PoolId": "us-east-1_XXXXX", "Region": "us-east-1" } } }
请将XXX替换为实际值,您必须在aws控制台中有这些值,并搜索cognito,您应该看到管理用户池和管理标识池,如果还没有创建请创建用户池和池,然后在aws配置文件中输入标识池ID和用户池poolid和c lientid详细信息
>
IF可能低于错误
int SDK_INT = android.os.Build.VERSION.SDK_INT;
if (SDK_INT > 8)
{
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder()
.permitAll().build();
StrictMode.setThreadPolicy(policy);
}
问题内容: 我希望在允许用户更改其登录信息之前重新对其进行身份验证。但是,由于最近的Firebase更新,我发现文档没有帮助。使用此链接,我产生了以下authenticateUser()函数。 但是,我不确定如何使用FIRAuthCredential类型的凭证变量来重新认证用户。此类的文档可在此处找到。 问题答案: 获取对象取决于要用于重新认证的提供程序。 电子邮件: 脸书: 推特: 谷歌:
我有一个问题与身份验证NTLM credenitals,当我使用有效的凭据,它的作品,但当我使用无效的凭据它不会失败,它的作品一样,因为它会与有效的凭据。只有当我首先输入有效凭据时才会出现这种情况。有没有办法清除凭据,或者我在这里做错了什么?这是我的代码: 我注意到一件事,如果我输入有效的文件夹,然后等待几分钟,输入无效的文件,它会像预期的那样工作。 更新 我已经更新了我的代码,这样: 添加缓存策
它说要使用以下命令: 在Google Shell中,我尝试了以下操作: 我知道命令指向的是正确的文件位置。如何成功验证应用程序默认凭据?
我在我的springBoot应用程序中添加了H2DB,用于单元测试目的。 应用中测试。我刚刚添加的属性: Spring数据源。名称=h2db spring.h2.console.enabled=true 它工作正常,节省了价值。 但它是如何工作的,我如何浏览这个数据库?
在个人中心已经认证过,并且显示已经认证,但是在创建对象存储时候显示未认证是什么鬼? 多次尝试刷新 创建等 均是该错误
问题内容: 我正在使用Django Rest Framework开发API。我试图列出或创建“订单”对象,但是当我尝试访问控制台时,出现此错误: 观看次数: 序列化器: 我的网址: 然后我在控制台中使用以下命令: 错误说: 问题答案: 通过在我的settings.py中添加“ DEFAULT_AUTHENTICATION_CLASSES”来解决
问题: 如何关闭规定时间内未发送过数据的客户端, 比如30秒内没收到一条数据就自动关闭这个客户端连接, 目的是为了让未认证的连接必须在规定时间内认证 答案: 方法一、利用GatewayWorker的心跳做 GatewayWorker GatewayWorker中可以利用心跳来解决这个问题,GatewayWorker有设置客户端多久不回复心跳服务端就关闭连接的属性,可以利用这个机制关闭未及时认证的客
问题: 如何关闭规定时间内未发送过数据的客户端, 比如30秒内没收到一条数据就自动关闭这个客户端连接, 目的是为了让未认证的连接必须在规定时间内认证 答案: use WorkermanLibTimer; require_once __DIR__ . '/Workerman/Autoloader.php'; $worker = new Worker('xxx://x.x.x.x:x'); $work