了解 AWS Cognito 在 iOS 个应用程序中的使用
Understanding AWS Cognito usage in iOS apps
我的后端应用程序服务器(ejabberd,托管在 AWS EC2 上)有自己的用户身份验证过程。我的 iOS 客户端直接连接它以进行用户登录,但客户端还需要单独访问 S3 存储桶 - 为此我正在尝试利用 AWS Cognito。
如果我在我的应用程序中包含以下推荐的 iOS SDK 代码,我可以让应用程序向/从 S3 存储桶上传/下载数据。文档 here ...
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc]
initWithRegionType:AWSRegionUSEast1 identityPoolId:@"IDENTITY_POOL_ID"];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc]
initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
但是,我的问题是 - 凭据在哪里/如何每隔一小时刷新一次?上面的代码对我来说似乎还不够——身份池实际上是硬编码在应用程序中的,可以由反编译它的人检索。我可能在这里遗漏了一些基本的东西......
感谢您的帮助...
身份池 ID 通常嵌入在应用程序中,您不会错过这方面的任何一步。通过使用您的 auth 和 unauth 角色来严格定义允许每个用户和用户类型执行的操作,可以减轻风险。
凭据提供程序会自动为您管理凭据。当它们过期时,它将获得新的并使用它们。您所要做的就是将其传递给您的应用当时需要的任何 AWS 客户端。
我的后端应用程序服务器(ejabberd,托管在 AWS EC2 上)有自己的用户身份验证过程。我的 iOS 客户端直接连接它以进行用户登录,但客户端还需要单独访问 S3 存储桶 - 为此我正在尝试利用 AWS Cognito。
如果我在我的应用程序中包含以下推荐的 iOS SDK 代码,我可以让应用程序向/从 S3 存储桶上传/下载数据。文档 here ...
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc]
initWithRegionType:AWSRegionUSEast1 identityPoolId:@"IDENTITY_POOL_ID"];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc]
initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
但是,我的问题是 - 凭据在哪里/如何每隔一小时刷新一次?上面的代码对我来说似乎还不够——身份池实际上是硬编码在应用程序中的,可以由反编译它的人检索。我可能在这里遗漏了一些基本的东西......
感谢您的帮助...
身份池 ID 通常嵌入在应用程序中,您不会错过这方面的任何一步。通过使用您的 auth 和 unauth 角色来严格定义允许每个用户和用户类型执行的操作,可以减轻风险。
凭据提供程序会自动为您管理凭据。当它们过期时,它将获得新的并使用它们。您所要做的就是将其传递给您的应用当时需要的任何 AWS 客户端。