在使用AWS AppSync和Cognito用户池身份验证的Android应用中,您可以使用以下Proguard规则来确保正确混淆和优化代码:
-keep class com.amazonaws.** { *; }
-dontwarn com.amazonaws.**
-keep class com.amazon.** { *; }
-dontwarn com.amazon.**
-keep class com.amazonaws.** {*;}
-keepattributes Signature
-keep class com.amazonaws.mobileconnectors.** { *; }
-dontwarn com.amazonaws.mobileconnectors.**
-keep class com.amazonaws.services.** { *; }
-dontwarn com.amazonaws.services.**
-keep class com.amazonaws.auth.** { *; }
-dontwarn com.amazonaws.auth.**
-keep class org.apache.commons.logging.** { *; }
-dontwarn org.apache.commons.logging.**
-keep class org.apache.commons.logging.impl.** { *; }
-dontwarn org.apache.commons.logging.impl.**
此外,您还需要确保在您的build.gradle
文件中,将以下依赖项添加到您的应用程序模块中:
dependencies {
implementation 'com.amazonaws:aws-android-sdk-appsync:2.18.0'
implementation 'com.amazonaws:aws-android-sdk-cognito:2.18.0'
}
然后,您可以使用以下代码示例来实现身份验证:
import com.amazonaws.auth.CognitoCachingCredentialsProvider;
import com.amazonaws.mobileconnectors.appsync.AWSAppSyncClient;
// 初始化 AWSAppSyncClient
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
context,
"YOUR_COGNITO_IDENTITY_POOL_ID",
Regions.YOUR_AWS_REGION
);
AWSAppSyncClient awsAppSyncClient = AWSAppSyncClient.builder()
.context(context)
.credentialsProvider(credentialsProvider)
.region(Regions.YOUR_AWS_REGION)
.build();
// 在登录时使用用户名和密码进行身份验证
awsAppSyncClient.signIn(username, password).execute();
// 在注册时使用用户名和密码进行身份验证
awsAppSyncClient.signUp(username, password).execute();
请确保替换示例代码中的YOUR_COGNITO_IDENTITY_POOL_ID
和YOUR_AWS_REGION
为您自己的Cognito身份池ID和AWS区域。