Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android,Cognito:可以登录,但可以';不要打电话_Android_Amazon Web Services_Amazon S3_Amazon Cognito_Aws Lambda - Fatal编程技术网

Android,Cognito:可以登录,但可以';不要打电话

Android,Cognito:可以登录,但可以';不要打电话,android,amazon-web-services,amazon-s3,amazon-cognito,aws-lambda,Android,Amazon Web Services,Amazon S3,Amazon Cognito,Aws Lambda,在Android应用程序中,我可以成功地使用Cognito进行身份验证,它返回CognitoIdToken和CognitoAccessToken 但我不知道如何使用它来进行实际的身份验证调用,比如Lambda或S3。CognitoIdentityProvider(我似乎可以使用)和CognitoCredentialsProvider(我没有)之间似乎存在鸿沟 感谢您的想法,甚至是指向使用Cognito和经过身份验证的调用/角色的示例的指针 [编辑]附加问题:有人能解释为什么会有AWSCognit

在Android应用程序中,我可以成功地使用Cognito进行身份验证,它返回CognitoIdToken和CognitoAccessToken

但我不知道如何使用它来进行实际的身份验证调用,比如Lambda或S3。CognitoIdentityProvider(我似乎可以使用)和CognitoCredentialsProvider(我没有)之间似乎存在鸿沟

感谢您的想法,甚至是指向使用Cognito和经过身份验证的调用/角色的示例的指针


[编辑]附加问题:有人能解释为什么会有AWSCognito*和AmazonCGNITO*,以及为什么它们看起来几乎完全不相关吗?

在aws控制台中查看您的联合身份池。在identity browser(身份浏览器)中查找(从日志中)要进行身份验证的identityId

关键是:如果标识id没有显示登录,那么您就永远不会得到身份验证*当我说logins时,每个标识都有一个登录计数,如果单击identityID,它会显示身份验证所使用的identityProviderName

这是一个简单的测试,如果你有登录,你是经过身份验证的。如果你没有,你就不是。现在为什么AWS没有一份文件说。。。好。。谁知道呢

如果您已通过身份验证,那么SDK将存储令牌,您无需担心,您可以开始使用aws进行服务配置


(响应基于IOS sdk,但我相信对于这些问题,它们是相同的-,但这些是我对IOS sdk的说明,我承认我没有在Android中尝试过这一点)。

我最终确定我错过了将令牌设置到凭据提供程序中的调用:

    final CognitoCachingCredentialsProvider credentialsProvider = getCredentialsProvider(applicationContext);

    Map<String, String> logins = new HashMap<String, String>();
    logins.put(Constants.COGNITO_USER_POOL_LOGIN_STRING, cognitoUserSession.getIdToken().getJWTToken());
    credentialsProvider.setLogins(logins);

谢谢查看AWS是否认为我在进行身份验证很有用。您引用的图表链接返回404。@chapeljuice谢谢。它指的是我清理时丢失的一根不起作用的树枝。很抱歉现在修好了。
CognitoCredentialsProvider cp = . . .
AmazonS3Client s3Client = new AmazonS3Client(cp);
TransferUtility s3transferUtility = new TransferUtility(s3Client);