我正在尝试使用用户名从cognito中获取用户详细信息,但出现此错误
Exception in thread "main" com.amazonaws.services.cognitoidp.model.AWSCognitoIdentityProviderException: Missing Authentication Token (Service: AWSCognitoIdentityProvider; Status Code: 400; Error Code: MissingAuthenticationTokenException; Request ID: 2b5226c1-49cc-4d55-bafe-08b371d38b50; Proxy: null)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleErrorResponse(AmazonHttpClient.java:1811)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleServiceErrorResponse(AmazonHttpClient.java:1395)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeOneRequest(AmazonHttpClient.java:1371)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1145)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:802)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:770)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:744)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:704)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:686)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:550)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:530)
at com.amazonaws.services.cognitoidp.AWSCognitoIdentityProviderClient.doInvoke(AWSCognitoIdentityProviderClient.java:7825)
at com.amazonaws.services.cognitoidp.AWSCognitoIdentityProviderClient.invoke(AWSCognitoIdentityProviderClient.java:7792)
at com.amazonaws.services.cognitoidp.AWSCognitoIdentityProviderClient.invoke(AWSCognitoIdentityProviderClient.java:7781)
at com.amazonaws.services.cognitoidp.AWSCognitoIdentityProviderClient.executeAdminGetUser(AWSCognitoIdentityProviderClient.java:1307)
at com.amazonaws.services.cognitoidp.AWSCognitoIdentityProviderClient.adminGetUser(AWSCognitoIdentityProviderClient.java:1278)
at getUserDetails.main(getUserDetails.java:24)
以下是我的代码:
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.AnonymousAWSCredentials;
import com.amazonaws.services.cognitoidp.AWSCognitoIdentityProvider;
import com.amazonaws.services.cognitoidp.AWSCognitoIdentityProviderClientBuilder;
import com.amazonaws.services.cognitoidp.model.AdminGetUserRequest;
import com.amazonaws.services.cognitoidp.model.AdminGetUserResult;
public class getUserDetails {
public static void main(String[] args) {
String app_client_id ="xxxxxxxx";
String app_client_secret ="xxxxxxxx";
String user_pool_id ="xxxxxxxx";
String region = "xxxxxxxx";
AnonymousAWSCredentials awsCreds = new AnonymousAWSCredentials();
AWSCognitoIdentityProvider client = AWSCognitoIdentityProviderClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.withRegion(region)
.build();
AdminGetUserRequest adminGetUserRequest = new AdminGetUserRequest()
.withUserPoolId("user_pool_id")
.withUsername("Facebook_10223918658622607");
AdminGetUserResult adminGetUserResult = client.adminGetUser(adminGetUserRequest);
}
}
这需要任何管理员凭据吗?如果是这样,我该如何输入?还有其他方法可以实现这一目标吗?
答案 0 :(得分:0)
public class getUserDetails {
public static void main(String[] args) {
String app_client_id ="xxxxxxxxxxx";
String app_client_secret ="xxxxxxxxxxxxxxx";
String user_pool_id ="xxxxxxxxxxxx";
String region = "xxxxxxxxxxxxxxxx";
String AWS_ACCESS_KEY = "xxxxxxxxxxxxxxxxxxxx";
String AWS_SECRET_KEY = "xxxxxxxxxxxxxxxxxxxx";
// AnonymousAWSCredentials awsCreds = new AnonymousAWSCredentials();
AWSCredentials awsCreds = new BasicAWSCredentials(AWS_ACCESS_KEY, AWS_SECRET_KEY);
AWSCognitoIdentityProvider client = AWSCognitoIdentityProviderClientBuilder.standard()
.withCredentials(new AWSStaticCredentialsProvider(awsCreds))
.withRegion(region)
.build();
AdminGetUserRequest adminGetUserRequest = new AdminGetUserRequest()
.withUserPoolId(user_pool_id )
.withUsername("abcd");
try {
AdminGetUserResult adminGetUserResult = client.adminGetUser(adminGetUserRequest);
}catch (UserNotFoundException e) {
System.out.println("User not found");
}
}
}
对于正在寻找答案的任何人,我们必须提供AWS_ACCESS_KEY,AWS_SECRET_KEY才能使用AdminGetUserRequest