问题标签 [aws-cognito]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-web-services - AWS ApiGateway Lambda 代理访问授权者
我在我的 ApiGateway 中使用 Lambda 代理和 Cognito 用户池授权器。在 Lambda 函数中,我可以通过事件对象访问路径等变量。除此之外,我还想访问经过身份验证的用户的声明。在它编写的文档中,我应该使用:
context.authorizer.claims.property
但我授权人为空,所以我得到
Cannot read property 'claims' of undefined
有人有想法吗?
c++ - AWS 登录 InvalidParameterException 缺少必需的参数 SRP_A
我想将该声明应用于 cpp:
我试图采用它cpp。我可以注册操作。当我尝试登录时,我遇到了这个异常:“InvalidParameterException : Missing required parameter SRP_A”
这是我的代码的一部分:
如何将 SRP_A 属性添加到 InitiateAuthRequest?对于其他平台(android、ios 和 js),他们的 sdk 有类似那里的 SRP_A 生成器。
我怎么解决这个问题。谢谢。
amazon-web-services - 同一个 AWS Cognito 用户池中的多个应用程序对于同一个用户来说 cognitoID 是否相同?
我有一个适用于我的 iOS 和 Android 应用程序的 Cognito 用户池。这个池有一个客户端密钥。我现在想为网络构建身份验证。cognito 的 javascript sdk 不支持使用应用程序客户端密码配置的用户池。
因此,假设我在同一个池中创建了一个新应用程序(没有客户端密码),专门用于 Web 应用程序。我当前属于池中应用程序 A 的移动用户是否能够通过应用程序 B(我将为 Web 配置的那个)登录到 Cognito?
这里推荐的方法是什么,以允许移动用户仍然能够通过网络登录到 cognito?
amazon-cognito - When I try to login using AWS Cognito I get an AccessDeniedException about my custom Lambda trigger
I am calling adminInitiateAuth and getting back a strange AccessDeniedException for my own lambdas.
Here is the code I'm calling:
The error message I'm getting is:
Does anybody know why I might be getting this error?
ios - Amazon Cognito:验证用户后,是否必须提示他们登录?
我正在使用 AWS Cognito。我的注册流程运行良好。他们的用户填写了他们的电子邮件地址和密码,我在适当的User Pool
. 我启用了电子邮件验证,并在短时间内发送和接收电子邮件。在注册屏幕之后,用户会看到一个验证屏幕,以接受刚刚通过电子邮件发送的代码。同样,这一切都很好。
我想了解的是:
一旦我有一个用户注册并验证,为了让 iOS AWS SDK 做这件事,所以我需要告诉用户去登录,或者我只是错过了一些可以在验证后获取他们的凭证的调用?
我的猜测是,由于我们不知道用户何时验证自己,可能会在几个小时后,他们可能已经杀死了应用程序并在那个时候重新启动它,预期的流程是让他们再次登录。
由于该应用程序确实在内存中有密码(未存储在磁盘上的任何位置),他们用于在当前注册导航控制器/流程中注册,我想我可以在验证完成后强制登录。
我只是想确保我没有错过 SDK 中的某些内容或有关此案例的文档。
java - 是否有使用 AWS Cognito 进行用户身份验证的简单方法?
我正在尝试使用 Elastic Beanstalk 构建我的第一个 AWS Web 应用程序。该应用程序的想法是它本质上是库存管理,使用 DynamoDB 来存储库存数据。该站点的后端是用 Java 完成的。
我正在寻找一个相对容易使用的用户身份验证系统,因为我真的不想把所有时间都花在自己编写一个完整的系统上。只需要一种简单的用户登录方式,不同的用户组具有不同的权限。甚至不需要注册系统,因为该项目帐户将为客户创建直接提供给他们的登录信息。
我一直在研究 AWS Cognito,但我越是尝试了解它,我就越感到困惑。看起来虽然 Cognito 的 Java API 有助于消除一些工作,但它仍然需要相当多的配置才能使基本的用户身份验证系统正常工作。我看过的其他选项包括第三方提供商,例如StormPath,因为这似乎是一个更简单的系统,尽管它有一个缺点,因为这意味着整个应用程序没有本地化到我的 AWS 帐户。我也看过LambdAuth但它看起来有点过时了。
有没有一种简单的方法可以使用 Cognito 制作用户身份验证系统而不会花费大量时间,或者我是否会更好地与第 3 方一起使用?
amazon-web-services - 简单地使用 Google+ 帐户对用户进行身份验证时,Cognito 是否矫枉过正?
我正在创建一个简单的应用程序,如果他们在数据库中,我想将用户数据保留在后端(如电子邮件,管理员可以在其中为用户帐户添加电子邮件),然后我希望他们使用他们的 google+ 帐户登录。我最初与护照和猫鼬协调研究了 google-oauth,我实施得很好,但我的老板让我使用 dynamodb。所以我从项目中放弃了 mongodb。每当我使用 auth 研究 dynamodb 时,它就会出现 Cognito。我明白了,他们想卖更多的服务。但是,这对我的项目来说太过分了,我还不需要将身份验证与多个设备绑定。我只是想在 dynamodb 中保存用户的信息 - 登录时查找该信息,如果存在,则使用 google oauth 进行身份验证并继续。但是我很难找到资源来用 aws 和 dynamodb 以简单的方式做到这一点。任何帮助表示赞赏。欢迎任何教程。提前致谢。
amazon-web-services - AWS Cognito 工作流程:使用电子邮件别名作为主用户名
因此,我试图了解 AWS Cognito,但我遇到了一些问题。
所以,现在我可以注册一个帐户,验证并登录。很简单。边缘案例是我的墙壁所在的地方。
这是我到目前为止的信息:
username
的一旦创建就不能更改- 我使用 UUID 作为我的
username
值 email
被标记为别名,在 Cognito 术语中意味着我可以使用它来登录username
。如果
email
被选为别名,根据文档,相同的值不能用作用户名(http://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user -池设置别名):如果选择电子邮件作为别名,则用户名无法匹配有效的电子邮件格式。同样,如果选择电话号码作为别名,则该用户池的服务将不接受与有效电话号码模式匹配的用户名。
该
email
地址只能在帐户经过验证后用于登录(http://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-attributes.html#user-pool-settings-别名)只有在电话号码和电子邮件地址经过验证后,电话号码和电子邮件地址才会成为用户的活动别名。因此,如果您选择将电子邮件地址和电话号码用作别名,我们建议您选择自动验证它们。
这是我的边缘案例。
如果用户注册但未立即验证:
- 他们被叫走
- 也许应用程序崩溃
- 他们失去了连接
- 他们的电池没电了
- 他们强制退出
- 应用程序被意外删除。
在他们看来,他们已经注册只是没有验证他们的帐户。在这一点上,它实际上无法验证他们认为他们注册的帐户。我想这可以通过消息传递来解决:
“警告在您验证您的电子邮件地址之前,不会创建您的帐户。” 或类似的规定。反正...
- 他们无法尝试登录,因为他们不知道随机分配为他们的
username
. - 即使不是这样,他们也提供了他们的电子邮件地址作为他们的用户名。从用户的 POV 来看,他们甚至不知道他们
username
可能是什么,因为他们只输入了他们的电子邮件地址。 - 他们所能期望的最好的结果就是尝试再次注册。(假设他们阅读了上面的验证警告)在这种情况下,现在 Cognito 可能已经放弃了未经确认的账户堆积。
“堆积”可能是一个过于强烈的短语,这可能是一个非常边缘的案例。
现在有利的一面是,由于他们还没有“验证”他们可以使用相同的地址email
再次注册,因为直到. 如果有人试图验证一个已经验证过的地址,他们会得到一个. 这实际上提出了一个有趣的观点,我也刚刚测试过。email
email
verified
AliasExistsException
我可以使用电子邮件地址注册,然后验证该电子邮件地址,以便帐户得到确认。然后我可以右转并使用相同的电子邮件地址注册,并且在尝试使用重复的电子邮件地址验证该帐户之前,我不会收到官方的 AWS 错误。没有任何方法可以更早地显示此错误吗?我猜期望是开发人员在 Pre-Signup Trigger 中编写验证服务:
当用户提交他们的信息进行注册时调用此触发器,允许您执行自定义验证以接受或拒绝注册请求。
总结一下,重申一下这个问题:
实际上,似乎需要在 Cognito 中使用电子邮件地址时,需要预先注册 Lambda 以确保不存在带有电子邮件的帐户,因为在验证尝试之前不会处理 AWS 异常制成。
我的假设在这里正确吗?通过这里的要求,我认为尽快让用户知道电子邮件地址不可用是非常合理的。例如:
amazon-web-services - 创建 AWS Cognito 用户池时出错
我使用以下 JSON 文件作为 AWS CLI 的输入来创建 AWS Cognito 用户池:
我收到以下错误:
调用 CreateUserPool 操作时发生错误(NotAuthorizedException):角色 arn 不属于您的帐户。
phone_number
如果我从中删除AutoVerificationAttributes
,则创建用户池时不会出现错误。