问题标签 [aws-userpools]

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.

0 投票
2 回答
1246 浏览

aws-api-gateway - 具有认知授权的 AWS API 网关

目前我正在开发无服务器架构,其中 AWS API 网关中有一组资源和方法。我计划将 Cognito 身份验证(用户池)和授权作为安全层添加到 AWS API 网关。

AWS API Gateway 中有 3 个授权方,即 IAM、Cognito 用户池和自定义 lambda。

对于我的用例,登录和注册(身份验证)通过 API 网关使用 cognito 用户池。这是完美的作品。我的用户将提供应用程序客户端 ID 和客户端密码以启用这两个进程。登录后,我的意图是让用户能够使用访问令牌(由用户池返回)通过 api 网关访问资源。

但是,我的用户可以具有不同的角色,例如管理员、所有者或访客。用户只能访问授权的 api。我的方法是将用户放入用户池中的不同组,将 IAM 策略分配给组并启用身份池。这迫使我将 api 网关中的授权类型更改为 IAM。和 IAM 要求每个请求都由 Signature V4 签名。

这意味着每个请求都必须通过会话令牌、访问密钥、秘密(在与联合池交换 id 令牌后返回)进行注册,而不是使用基于访问令牌的方法。因此,在我的用例中,在我的用户通过 api 网关登录后,我的客户端应用程序(web/mobile/postman 工具)必须生成签名并放入 Authorization 标头。是否有替代方法来控制用户池组中的授权,但在 api 网关中使用访问令牌?我的理解是访问令牌(在授权标头中)比复杂的签名签名过程更容易使用。

如我错了请纠正我。谢谢。

0 投票
1 回答
1439 浏览

reactjs - React Cognito 用户池 - 客户端试图写入未经授权的属性

我正在把头撞在墙上,试图弄清楚这一点。我的反应应用程序中有以下代码。我需要为用户添加一些方法来添加单位/apt 编号,所以我添加了一个自定义属性。

一切正常,但是当我包括在内时apt_number: this.state.unitNumber,出现错误{code: "NotAuthorizedException", name: "NotAuthorizedException", message: "A client attempted to write unauthorized attribute"}

我确实进入了我的设置并使属性可写(我尝试使用Unitand的属性apt number

这是我的代码:

到底是怎么回事?

在此处输入图像描述

0 投票
0 回答
303 浏览

facebook - 防止来自联合登录的重复用户名

我有多个身份提供商(Cognito 用户池、Facebook 和 Google)支持登录的 Cognito 设置。在我的用户池配置中,我将电子邮件用作用户名。所需的功能是让用户名在所有身份提供者中都是唯一的。即,如果用户使用 Facebook 登录并且他们的 Facebook 电子邮件是“user@test.com”,然后他们使用 Google 登录并且他们的 google 电子邮件是“user@test.com”,那么他们应该无法登录或他们的联盟身份应该合并。

这是连接设备的用户管理。我不希望用户在登录 Facebook 时设置一些设备,然后使用 Google 登录,而无法从他们的 Facebook 帐户查看他们的设备。

我知道这会变得很复杂,因为您只需一个电话号码就可以创建一个 Facebook 帐户。

我知道 Cognito 用户池中有一个预身份验证触发器,但是当我使用联合身份登录时它似乎没有触发。无论我使用哪个身份提供者(用户池、Facebook、谷歌),是否有一个我可以使用的触发器?

谢谢,

0 投票
1 回答
2663 浏览

c# - 无法通过 C# SDK 更新 UserPoolClient 的读/写属性

以编程方式创建 Cognito 用户池和应用程序客户端时,如果应用程序客户端对用户池的属性具有读/写访问权限,则必须明确授予该访问权限。我已经能够成功地为自定义属性执行此操作,但内置属性总是返回“创建客户端时指定的写入属性无效”或“创建客户端时指定的读取属性无效”的错误。

文档是......既庞大又难以找到。除了诸如“ReadAttributes 是可以读取的属性的字符串列表”之类的内容之外,我还没有看到这个示例或有关 CreateUserPoolClientRequest 类型的有用文档的实际位。

这是我正在使用的代码,它总是以错误消息结束并且无法创建应用程序客户端。_client 是一个 AmazonCognitoIdentityProviderClient 正确实例化和凭证并在 lambda 函数中运行。

任何帮助是极大的赞赏。

0 投票
2 回答
754 浏览

reactjs - 您可以将同一个 AWS 用户池连接到 React Native 和 React App 吗?

我已经使用 AWS Amplify(终端中的“amplify add auth”)通过我的 React Native 应用程序在 AWS Cognito 中创建了一个用户池,但我不知道如何将同一个用户池连接到我的 React 应用程序。据我所见,Amplify Cli 仅提供创建新资源的选项...有谁知道如何将其连接到已经存在/正在使用的用户池?

0 投票
1 回答
319 浏览

amazon-web-services - 在 IdToken AWS cognito 服务中添加用户属性

考虑我在用户池中有以下属性

  • 用户名

  • 地点

身份验证成功后如何在IdToken中添加 All属性

0 投票
1 回答
290 浏览

android - 如何使用社交身份提供者在用户池中创建用户?

我想使用社交身份提供商 (Google) 登录,并且在成功验证后,我需要将 Google Auth Token 传递给 Cognito 用户池以在其中创建新用户。可能吗?如果是,我们如何实现它?

我认为以下是步骤

  1. 使用 Google 登录并获取 Google Auth Token
  2. 将其发送到 AWS Cognito 用户池以创建用户

参考,我经历过

https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-identity-federation.html

https://docs.amazonaws.cn/en_us/cognito/latest/developerguide/cognito-user-pools-social-idp.html

https://docs.aws.amazon.com/cognito/latest/developerguide/google.html

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-integrating-user-pools-with-identity-pools.html

https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-scenarios.html

https://aws-amplify.github.io/docs/android/authentication

https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-social-idp.html

https://docs.aws.amazon.com/cognito/latest/developerguide/tutorial-integrating-user-pools-android.html

0 投票
0 回答
3205 浏览

java - 如何从 AWS Cognito 用户池检查用户密码?

我需要检查用户提供的输入是否与当前密码匹配(来自 Cognito 用户池)。我正在实现一个确认对话框,要求用户再次提供密码(用户必须登录才能访问此功能),并检查它是否有效。

我在 Android 上使用适用于 Java 的 AWS 开发工具包,当前的实现执行以下操作:

然而,这感觉像是一种 hack,并且受 Failed Attempt Limits 的限制,这使得自动化一些测试用例变得不可行。

SDK 中是否有可以用于此目的的 API?

谢谢!

0 投票
0 回答
42 浏览

node.js - 如何使用 facebook 登录或将 facebook 帐户链接到用户池中的当前用户

我在我的应用程序中使用 cognito & node 无服务器框架来管理用户。我已经能够使用 amazon-cognito-identity-js 在 cognito 上执行操作(注册、登录等)。但是我需要实现两个功能。

  1. 用脸书登录
  2. 将 facebook 帐户与当前登录用户关联。

我已经搜索并阅读了很多文章,但对如何实现这一点没有任何意义。

到目前为止,我已经能够使用以下要点从 AWS 库中获取 identityId。https://gist.github.com/brianberlin/443c3bd005ff63282394 但是我不确定如何处理从 AWS 获得的 identityId。

我什至不确定我的方向是否正确,因此我们将不胜感激。

问候,

0 投票
1 回答
517 浏览

amazon-web-services - 尝试访问api网关中的资源时如何调用cognito登录页面

我正在尝试在我们的环境中设置 AWS API 网关。我创建了一个 api 网关,其中包含一个资源和一个用于身份验证的 cognito 用户池。我在 cognito 中创建了一个应用程序客户端并能够添加用户。但是我不清楚在使用 api 网关访问端点时调用登录页面。现在,我手动在 Authorization 标头中传递 JWT 令牌以进行测试,但在实时时,当我点击 api 网关端点时,我想重定向到注册/登录页面,以编程方式在用户通过身份验证后添加 auth 标头。

你能帮我理解我在这里缺少什么吗?