amazon-cognito - 读/写到 Cognito DeveloperOnlyAttribute
问题描述
有人可以提供一些指导如何读取和写入此链接中提到的DeveloperOnlyAttribute吗?
我使用 Cloudformation 创建了这个属性,在 Cognito 控制台中,一个自定义属性被创建为custom:dev:custom:paid_user
. 如果我对DeveloperOnlyAttribute目的的理解是正确的,我的用例是,一旦用户为应用程序付费,我将有一个后端 Lambda 函数来更改此属性。用户自己将无权更改此属性。正确的?
谢谢。
2020/07 更新
aws 文档已更新为以下行:
我们建议您在用户池客户端中使用 WriteAttributes 来控制如何针对新用例更改属性,而不是使用 DeveloperOnlyAttribute。
我的用例场景是用户可以查看某些属性,但不能编辑。示例paid_user
属性,支付后系统会更新该属性;并且用户永远不能自己编辑此属性。
我为我的案例所做的是将这些属性设置为non-writtable
属性。用户将无法编辑这些属性,但使用adminUpdateUserAttributes()
我仍然可以更新它们
解决方案
AWS 文档中关于这方面的信息几乎为零,但这是我通过测试自己发现的。
可变 DeveloperOnly 属性:
- 它们总是有一个
dev:custom
前缀,除了在 AWS 控制台中,前缀是custom:dev:custom
. 因此,在您使用 api 的情况下,您应该将属性称为dev:custom:paid_user
- 在对 的调用中不
getUser()
可见,无论是否使用开发人员凭据调用它 - 调用时可见
adminGetUser()
。调用此 api 需要开发人员凭据 - 调用时可编辑
adminUpdateUserAttributes()
。调用此 api 需要开发人员凭据 - 调用时可编辑
updateUserAttributes()
,无论是否使用开发人员凭据调用
重新阅读最后一个。您不需要开发人员凭据即可写入 DeveloperOnlyAttribute。用户可以使用他们的用户名/密码登录,然后调用以updateUserAttributes()
更改其在用户池中的条目上定义的任何 DeveloperOnlyAttributes。至少这是我的测试所显示的,希望其他人尝试一下并验证/反驳这种行为。
如果 cognito 有一个公共的 bug 跟踪器,它就会去那里。
使用风险自负。
2020/05 年更新:
此后,AWS Cognito 私下联系我说他们修复了上述安全问题。
推荐阅读
- python - 如何使用数据框中列中的字符串更改真/假?
- python - Pandas 合并/加入 2 个数据框
- python - Python程序和MySQL之间失去联系
- javascript - OOP/JavaScript - 删除引用时删除对象
- python - 如何测量覆盖率(在生产系统中)?
- linux - Redis Docker 容器不断退出
- python-3.x - 更新嵌套字典python3时的错误行为
- java - RxJava:是否可以将 Completable 执行构建到 doOnSuccess 或类似中
- android - 防止导航图标android上的工具栏标题
- parallel-processing - MPI CPU 绑定到特定内核范围