问题标签 [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.

0 投票
2 回答
1086 浏览

javascript - NotAuthorizedException:使用 Google 作为身份提供者时,令牌不是来自此身份池的受支持提供者

在使用 Google 调用 federatedSignIn 时,它会返回一个

“NotAuthorizedException:使用 Google 作为身份提供者时,令牌不是来自此身份池的受支持提供者”

我正在使用第三方库,即 angular5-social-login 来登录谷歌等社交服务提供商。我相信我已经在 cognito 和联合实体中按预期配置了它。

这是我的示例代码

这里是

这是我做的配置

在此处输入图像描述

在联邦实体上

在此处输入图像描述

两者都有相同的谷歌客户端ID

我相信我已经在用户池和联合实体中进行了必要的配置。但是我仍然遇到同样的问题

0 投票
1 回答
187 浏览

amazon-web-services - 使用 Cognito 对 AWS 上的用户进行身份验证,用于使用代码的无服务器 React Web 应用程序

所以这是我的场景,我有一个在 AWS 上使用无服务器架构开发的 Web 应用程序。我使用 S3 来托管我的静态内容,我的所有服务器端代码都在 Lambda 函数中实现并通过 API Gateway 访问。现在我正在尝试使用 Cognito 和用户池来实现身份验证层。

我一直按照此页面上的说明创建用户池。完成后,我可以通过在浏览器的地址栏中输入这样的 URL 来测试我的用户池:

重要的部分(对我来说)是response_type=code根据相同的文档也可以是response_type=token. 在这一点上,我不确定它们的区别是什么以及我应该如何在它们之间进行选择。

无论如何,打开上述 URL 将带您进入 AWS 默认登录表单。一旦用户成功通过身份验证,浏览器将被重定向到提供redirect_uri的额外参数,如下所示/?code=12345678-1234-1234-1234-123456789012。在这一点上,我想我应该提取code(在客户端使用 Javascript)并将其传递给 API 网关并使用它来验证用户。但我不确定如何。我发现这个页面解释了令牌的步骤,但是代码呢?

0 投票
2 回答
1491 浏览

android - 如何让 AWS Cognito 登录/注销以在 Android 上与 AWS API Gateway 一起正常工作?

我正在编写一个简单的 Android 应用程序,它目前提供以下功能:

  1. 使用电子邮件和密码注册/登录,针对AWS Cognito后端
  2. 注销(针对相同的 Cognito 后端)
  3. 在AWS API Gateway上调用受保护的 Web API

我正在构建自己非常简单的登录/注销 UI,而不是使用 AWS Cognito UI 库:

登录和登录屏幕

登录屏幕(左);登录画面(右)

当用户登录时,Web API 应返回 200(和正文),并在用户注销时返回 403 错误。服务器设置似乎都是正确的,iOS 上的等效应用程序按描述工作。

Android上的问题如下:

  • 当我启动应用程序时,不要登录并调用 API:我收到 403 错误(预期)。
  • 当我登录并再次调用 API 时:我仍然收到 403 错误(意外)。
  • 当我关闭应用程序时,从最近的应用程序列表中滑动它,然后重新打开它:我仍然登录(预期)
  • 现在,当我调用 API 时:我收到 200 响应(预期)。

如果我注销现在也会发生同样的情况:注销后我仍然收到 200 响应,直到我终止应用程序并重新启动它。

如何在不回收应用程序的情况下立即获得 API 网关调用以尊重我当前的身份验证状态?

我想知道是否应该归咎于 AWS API Gateway Android 库,所以我尝试了使用OkHttp的替代实现,但我得到了完全相同的结果。我的 Cognito 代码基于AmazonCognitoYourUserPools 演示

这是我的 build.gradle 中导入 AWS 库的部分:

在此处粘贴大量代码可能无济于事,但我已经为所涉及的主要类创建了要点(删除了日志记录等,以使它们尽可能小且相关):

AwsInterceptor中引用的类ApiCaller.java来自这里

0 投票
1 回答
196 浏览

authentication - 我可以使用 AWS Cognito 进行 Ejabberd 服务器身份验证吗?

对 Ejabberd 世界来说非常新。我正在尝试使用 ejabberd 了解身份验证。所以我有一个移动聊天应用程序,我通过 AWS Cognito 注册用户,现在我还必须将他们注册到 Ejabberd 服务器。

现在,有没有办法让我使用这个 Cognito 身份验证来注册/验证用户到我的 ejabberd 服务器?

或者应用程序身份验证和 ejabberd 身份验证是否应该分开处理,我必须首先通过 Cognito 注册,当注册成功时,我必须通过 ejabberd 的身份验证过程并创建一个与 cognito 用户无关的用户。

0 投票
5 回答
21392 浏览

amazon-web-services - Cognito 注销不像记录的那样工作

我有一个配置了 SAML 身份提供程序 (ADFS) 的 Cognito 用户池,我可以将其作为联合用户 (AD) 进行签名,但注销不起作用。

按照文档,我向 https://my-domain.auth.us-west-2.amazoncognito.com/logout?client_id=63...ng&logout_uri=http:%2F%2Fyahoo.com发出 GET 请求(使用一些公共注销 uri),来自我的客户端(AngularJS 1.x 应用程序),我得到一个带有Location标头 的 302

(事实上​​,我看到了 2 个类似上面的请求)。

当我重新登录(通过 ADFS)时,它不会提示输入我的 AD 凭据,即似乎我没有注销。

我的用户池按照此处所述进行配置(请参见步骤 7),其中选中了启用 IdP 注销流程,这也应该将用户从 ADFS 中注销。

有什么建议么?谢谢。

0 投票
1 回答
231 浏览

amazon-web-services - 无法执行 HTTP 请求以使用 Postman 在 Cognito AWS 中注册新用户

我正在尝试手动请求邮递员注册。有一个带有标头的 POST 请求:

原始的身体看起来像这样:

我得到,在响应这个错误:

任何线索为什么我会收到此错误?

0 投票
3 回答
4492 浏览

reactjs - 如何等待 aws cognito authenticateUser 调用(这似乎是一个回调)

所以我们正在使用等待/异步调用,但 aws-amplify 提供的 authenticateUser 命令似乎使用了回调。我是一个 python 编码器,很长一段时间没有用 node 编码,所以这可能是一个幼稚的问题!

我尝试将其转换为这样的承诺:

然后

但是,无论我如何调整它,代码都会继续运行,然后我得到一个未处理的承诺拒绝(在我的测试中,身份验证目前失败)

0 投票
1 回答
671 浏览

amazon-web-services - cognito 托管 UI 中的可选标识符不起作用

我一直在我的用户池上使用 SAML 身份联合,它有一个托管的登录页面。我配置了 Azure Active Directory 和 cognito 用户池,以便我可以使用 AD 用户登录。我以类似的方式添加了多个 SAML 提供程序,并且可以正常工作。当我使用Identifiers属性时出现问题,该属性用于通过从电子邮件中提取域名来登录到相应的 IDP。我遵循了这个文档。这就是它在 AWS 控制台中的外观。

在此处输入图像描述

现在,当我尝试使用 AD 用户电子邮件登录时,它给了我Login not allowed 错误。当我不使用此标识符可选参数时,它运行良好。

在此处输入图像描述

有人可以帮我解决这个问题吗?

0 投票
1 回答
1812 浏览

amazon-web-services - AWS Cognito - 未收到确认代码

我使用 AWS Cognito 创建了一个用户池。它工作得很好,但许多电子邮件服务器(像 FreeTelecom 我们在法国的 Orange 这样的提供商)从未收到确认码(为了验证电子邮件地址并激活用户帐户)。我在 AWS 文档中一无所获。请问有人可以帮助我吗?

0 投票
0 回答
373 浏览

amazon-cognito - 仅用于多租户 SaaS 的身份和身份验证的 Cognito

我们运行一个多租户 SaaS 应用程序,其中组织有用户,并且组织彼此分离。

这个问题跟随这个线程,我已经消化了: https ://forums.aws.amazon.com/thread.jspa?messageID=819858

我们有这种情况,类似于上面的线程:

  • 无限组织
  • 每个组织的无限用户
  • 无限的“客人”作为外部合作者
  • 一个组织内的用户无法访问任何其他组织内的任何内容

考虑到上述线程中发布的限制,为每个组织内的无限组织和无限用户执行此操作的解决方案是什么?

我们只想使用 Cognito 来处理 SaaS 的注册和登录。我们不希望使用 API Gateway,因为我们已经在 API 实例后面使用了 ALB。

因此,我们的问题是身份和身份验证,而不是授权(例如权限、角色等)。

无限访客要求的原因是因为我们是一个应用程序,使用户能够与公司以外的其他人协作 - 请参阅 https://tallyfy.com了解上下文。

我对构建用户池、组和/或仅为此目的使用属性的最佳方法感到困惑。帮助表示赞赏。

示例解决方案 - 具有潜在数百万用户的单个用户池,其中用户的自定义属性是“organization_id”。此外,另一个自定义属性在两种类型中定义了他们的用户类型 - regularguest。这是理想/可行的解决方案吗?