AWS Cognito Developer经过身份验证的身份并上传到S3

时间:2017-12-04 03:42:32

标签: authentication amazon-s3 aws-cognito

我正在尝试验证AWS Cognito服务以将图像上传到S3存储桶。我试图关注" http://docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html",但我感到困惑。我想使用开发者身份进行身份验证,因为我没有使用Cognito服务登录。 我用于身份验证的类如下:

import AWSCore
class DeveloperAuthenticatedIdentityProvider : AWSCognitoCredentialsProviderHelper {
     override func token() -> AWSTask<NSString> {

          //I have no clue what it returns and there also an error here
          self.identityId = response.identityId
          return AWSTask(result: response.token)

     }
}

我使用的凭据如下:

 let devAuth = DeveloperAuthenticatedIdentityProvider(regionType: .USWest2, identityPoolId: "pool-id", useEnhancedFlow: true, identityProviderManager:nil)
 let credentialsProvider = AWSCognitoCredentialsProvider(regionType: .USWest2, identityProvider:devAuth)
 let configuration = AWSServiceConfiguration(region: .USWest2, credentialsProvider:credentialsProvider)
 AWSServiceManager.default().defaultServiceConfiguration = configuration

我上传到S3,如下所示:

let uploadRequest = AWSS3TransferManagerUploadRequest()
uploadRequest?.body = fileURL as URL
let awsImageName = "1002_" + UUID().uuidString
uploadRequest?.key = awsImageName + "." + ext
uploadRequest?.bucket = S3BucketName
uploadRequest?.contentType = "image/" + ext
let transferManager = AWSS3TransferManager.default()
 // Perform Upload
transferManager.upload(uploadRequest!).continueWith(block: { (task:AWSTask<AnyObject>) -> AnyObject! in

没有身份验证就可以正常工作,但我希望将它与身份验证一起使用。有人可以告诉我该怎么做?我是swift的新手,还有AWS Cognito Services。

1 个答案:

答案 0 :(得分:0)

我认为你正在用IAM转换认知。 Cognito用作您自己的应用程序或移动应用程序的身份提供程序。它是一个云身份提供者,您可以将其用作服务。您可以允许其他用户在您自己的用户界面中注册,并将其与Facebook,Google,...结合使用。

IAM用于识别谁可以使用Cognito,S3,EC2等云服务。使用s3等需要哪些角色

无需身份验证即可运行的原因是您可能已经安装了AWS SDK或cli来存储此IAM信息。您的应用程序将使用它作为后备。

看看IAM,创建一个可以访问S3并假设该角色的开发人员角色。获取您帐户的密码和访问密钥,您现在可以忘记Cognito

更多信息:

http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html

http://docs.aws.amazon.com/cli/latest/userguide/cli-roles.html