• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

ios - 使用 Cognito 用户 ID 将数据存储到 DynamoDB

[复制链接]
菜鸟教程小白 发表于 2022-12-13 04:17:32 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我使用 AWS Mobile Hub 设置我的 iOS 应用程序。我使用的服务是 AWS Cognito 和 AWS DynamoDB。

我在 AWS DynamoDB 上创建了一个私有(private)表,该表默认具有分区键 userId。据我所知,AWS DynamoDB 仅允许 userId 是来自例如的 identityId AWSIdentityManager.

我能够通过 AWSCognitoIdentityUserPool.default().currentUser()?.getSession() 成功建立用户 session 。

我使用 identityId 读取/写入 AWS DynamoDB,我通过 AWSIdentityManager.default().identityId 作为 userId 获得。

但是,identityId 在设备上始终保持不变,即使我已经建立了用户 session 。

如何从 AWSIdentityManager 获取特定于 AWS Cognito 用户的 identityId



Best Answer-推荐答案


编辑:

IdentityId 对于每个 cognito 用户都是唯一的,正如我们在评论线程中一起发现的那样,但它们被缓存在设备上,需要在注销时清除。通过 swift sdk 清除:

AWSCognitoIdentityProvider.Clear()

以下是我的原始答案,建议使用每个 cognito 用户也是唯一的用户名或别名,但它只能用作评论讨论的引用。改为使用 IdentityId 作为 dyanmodb 主键。

结束编辑:

我建议使用用户名作为 dynamodb 表中的分区键。

您可以通过

从 AWSCognitoIdentityUser 对象中获取用户名
if let username = AWSCognitoIdentityUserPool.default().currentUser()?.username {
   // do stuff with username
}

您还可以将用户池配置为使用自定义用户名别名,以允许用户通过电子邮件和/或电话号码登录。在这种情况下,电子邮件和/或电话号码也将是唯一的,然后如果您愿意,您可以使用其中任何一个作为 dynamodb 表中的唯一分区键。这是 overview of aliases在认知中。

关于ios - 使用 Cognito 用户 ID 将数据存储到 DynamoDB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50495962/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap