使用 iOS SDK Cognito Lambda 和 DynamoDB 为 AWS iOS 创建 user/developer 定义的登录

Creating a user/developer defined login for AWS iOS using iOS SDK Cognito Lambda and DynamoDB

我想弄清楚这是否是使用 AWS 为 iOS 开发 user/developer 定义的登录凭据的 "proper"/current/correct 流程。

(我正在从 Parse 迁移到 AWS,所以只读了一个星期的 AWS)。

  1. 下载、安装和构建用于注册用户的 iOS 应用程序(例如电子邮件和密码(这已完成,应用程序显示用于电子邮件和密码的 UITextField 并可在 UIViewController 中访问))。此外 iOS 通过 Cocoapods 开发的 SDK 已安装并可用。
  2. 创建一个身份池,其中包含访问不同服务的 unauth 和 auth 角色。所以 unauth 在技术上将访问他们需要的东西。 Unauth 访问 DynamoDB 完全访问权限和 Cognito。 Auth 添加了 s3 和 sns。这个做完了。是否需要添加 Lambda? (全部在 IAM 和 Cognito 中设置)。
  3. 使用 Lambda 创建要从 iOS 设备调用的函数,以查看用户是否在 DynamoDB 中注册。
  4. 如果用户已注册并与 Lambda 对 DynamoDB 的调用相匹配,请使用 Cognito 从 unauth 角色切换到 auth。
  5. 现在用户已通过身份验证,可以访问 S3、SNS 和其他服务。

有更好的方法吗?这安全吗?第 3 步到第 5 步有点麻烦。

由于您是从应用程序调用 Lambda 函数,因此您需要在 IAM 中为其添加权限。 您的流程看起来不错,只需确保您正在调用 GetOpenIdTokenForDeveloperIdentity from your Lambda function. You might want to look into this project 以获取参考。