当前位置: 首页 > 知识库问答 >
问题:

AWS Cognito开发人员经过身份验证的身份并上传到S3

邵绪
2023-03-14
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
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认知服务的新手。

共有1个答案

袁泰
2023-03-14

我想你是在用IAM换认知。Cognito被用作您自己的应用程序或移动应用程序的身份提供者。它是一个云标识提供商,您可以将其用作服务。您可以允许其他用户在您自己的用户界面上注册,并将其与脸书、谷歌、······

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

它在没有身份验证的情况下工作的原因是您可能安装了存储此IAM信息的AWS SDK或cli。您的应用程序将使用它作为后备。

 类似资料:
  • 我试图为AWS实现“开发人员身份验证身份”,如下所示:https://AWS.amazon.com/blogs/mobile/amazon-cognito-innecling-developer-authenticated-identities/ 我很好地理解了基本流程。 我怎样才能做到这一点?

  • 当用户启动应用程序时,他们是一个未经身份验证的用户,并且他们将从iOS应用程序中的DeveloperAuthenticatedIdentityProvider类获得。我可以在cognito控制台中看到。但是,当他们登录时,我调用了我的nodejs后端,其登录映射为: 并使用以下后端代码:

  • 我正在使用一个带有开发人员身份验证身份的Authflow设置的认知身份池--选择这个auth流是因为出于一些业务原因,我们不能使用认知用户池。因此,我自己使用带有authendpoint的API网关实现了一个用户标识提供者服务,该endpoint激发一个Lambda函数。 因此,我通过运行和随后运行生成了一个临时的和,并获得了临时的AWS凭据(临时的和)。 现在,我希望生成一个,以便在我使用IAM

  • 我不太熟悉亚马逊,所以有几个问题: 我想使用我自己的自定义后端解决方案,用Cognito为亚马逊上的用户执行登录。找到了这个可能的解决方案。这个后端为我注册和登录后返回 我想遵循这个指南。但根据这一点,我应该提供和令牌,并将其设置为任何社会的登录后: 作为我使用了在 但我有一个例外,我没有任何提供者 AWSCognitoCreentialsProvider getCreentialsAnd Cog

  • 我的代码在这里:代码重新发布是因为我想问一个更直接的问题。如何在未经身份验证的用户和经过身份验证的用户之间切换?我的未经验证的文件似乎已缓存,我使用了以下方法: 在我剩下的api代码之前,它仍然不能工作。谢谢你的帮助 注意:我知道它不起作用,因为我在切换配置/凭据提供程序后立即使用lambda进行调用,并且只有授权用户才能调用此方法。 编辑@behrooziAWS答案: API代码: 完整错误:B