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

0 投票
2 回答
2995 浏览

aws-cognito - AWS Cognito token verification c#

I am trying to implement a signature verification endpoint - or ASP.net WebAPI action filter, to verify that a token has in fact come from AWS Cognito - validate its signature.

I am using the following code, but it always returns invalid. The Javascript code example also below works perfectly with the same keys / token.

Can anyone help?

Thanks, KH

CSharp

JavaScript

0 投票
2 回答
3822 浏览

node.js - AWS Cognito adminCreateUser 可以发送临时密码吗?

TemporaryPassword 上的 Amazon Cognito adminCreateUser 文档指出:

该参数不是必需的。如果您未指定值,Amazon Cognito 会为您生成一个值。

用户如何获得它?起初我以为它会通过电子邮件发送给用户,但似乎并非如此。然后我想也许它会在回应中回来。没有。

这是我在节点 JS Lambda 函数中调用的代码:

这是我得到的回应:

密码去哪儿了?我们应该猜到吗?:-)

0 投票
1 回答
644 浏览

amazon-cognito - Cognito 用户池 - 刷新令牌是否与客户端 ID 相关联?

前几天在做一些跨团队工作时,试图获得一个 API 端点以促进刷新令牌的使用,但我有点困惑为什么我在尝试时会收到“无效的刷新令牌”错误尝试使用 REFRESH_TOKEN 或 REFRESH_TOKEN_AUTH 流时的 InitiateAuth 或 AdminInitiateAuth 操作。

在我们正在过渡到 Cognito 的 .NET API 中,我使用了一个客户端 ID。我们还在一个启动项目中使用了另一个客户端 ID,我们可以点击它来获取 JWT。据我所知,客户端 ID 与刷新令牌相关联,这就是我收到无效令牌错误的原因。

任何人都可以确认有更多的经验吗?

0 投票
3 回答
1380 浏览

amazon-web-services - AWS Cognito 无法在 CognitoIdentityCredentials 上设置凭证

我在为 AWS Cognito 设置凭证时遇到问题。

我在用例 4 上有来自AWS amazon-cognito-identity-js 的以下代码。

我检查了我发送的方法是否正确IdentityPoolId,但我在 accessKeyId 和 sessionToken 上未定义作为返回。LoginsCognitoIdentityCredentials

下面是我得到的。 CognitoIdentityCredentials {expired: true, expireTime: null, accessKeyId: undefined, sessionToken: undefined, params: Object…}

知道如何解决这个问题吗?

0 投票
1 回答
1451 浏览

javascript - 未捕获的错误:n.onSuccess 不是 AWS Cognito 函数

当我尝试使用新密码设置经过身份验证的用户时,我收到以下 javascript 错误,但我无法弄清楚它发生在哪里。一旦我调用我的注册函数,用户实际上可以用一个新密码覆盖他们的临时密码,并且在 cognito 控制台中一切看起来都很好。他们还可以使用新密码登录。

我的注册功能:

注册.vue

0 投票
2 回答
14748 浏览

node.js - AWS - nodejs SDK - CognitoIdentityServiceProvider.initiateAuth - CredentialsError:配置中缺少凭证

我正在尝试使用带有用户池的 AWS Cognito 通过我的 API 进行身份验证。我有一个通过 AWS Cognito 用户池创建的用户,我正在尝试使用该用户登录。

我得到的错误是CredentialsError: Missing credentials in config. 具体来说,它告诉我我需要一个IdentityPoolId. 但我似乎无法IdentityPoolId在我的 AWS 控制台中找到它。我的用户池从哪里得到这个?我看到的只是一个 Pool id 和一个 Pool ARN。

在此处输入图像描述

相关源代码:

对于authParams对象,我不确定AuthFlow应该是什么。查看http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html#initiateAuth-property似乎USER_SRP_AUTH是我应该使用的。

编辑:

我相信我可能已经找到了我的IdentityPoolId. 我查看了我的部分,并在编辑身份池时Federated Identities添加了相应User Pool的部分。Authentication Providers

在此处输入图像描述

我通过输入and为该用户池将Authentication Providerfor关联Cognito到我创建的用户池。现在使用相同的代码,我得到了错误。它说。好的...我正在尝试授权用户...我是否需要创建一个未经身份验证的角色,以便用户在未经身份验证时可以进行身份​​验证?如果那是我需要做的,那似乎很愚蠢。User Pool IDApp Client IDIdentity pool IDCredentialsError: Missing credentials in configUnauthorized access is not supported for this identity pool

编辑2:

我还应该注意,我能够登录并获得以及AccessToken使用Javascript SDK(不是 nodejs)。我在不需要. 我唯一需要的是 a和 a 。IdTokenRefreshTokenIdentityPoolIdUserPoolIdClientId

0 投票
0 回答
348 浏览

ios - iOS 中的 AWS Cognito 更新用户登录问题

我正在AWS Cognito登录。它在所有情况下都可以正常工作,例如注册、登录、忘记密码等。但是它编辑个人资料的情况下,我面临一些技术问题。我成功编辑了我的手机号码。

在一种情况下,我提供了错误的数字,它会引发这样的错误,

[AWSJSONResponseSerializer responseObjectForResponse:originalRequest:currentRequest:data:error:] | 响应正文:{"__type":"InvalidParameterException","message":"电话号码格式无效。"}

我正在使用这组代码来更新我的个人资料,

它仅提供成功响应。失败响应不会出现在此块内。任何人都可以帮助我如何在此获取失败消息。我尝试了很多方法,但仍然难以获得正确的解决方案。任何帮助将不胜感激。谢谢。

0 投票
1 回答
1135 浏览

node.js - 使用 njwt 针对 JWK 集验证 AWS Cognito JWT IDToken

我试图弄清楚如何验证从 AWS Cognito Identity authenticateUser 调用获得的用户 IDToken。

按照此处找到的步骤:https ://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html#amazon-cognito-identity- user-pools-using-id-and-access-tokens-in-web-api我能够达到我拥有用户 ID 令牌的地步,并且我已经解码了标题和正文。

给定一个 IDToken,这就是我的标题和正文的样子:

标题:

身体:

那么IDToken的第三部分就是签名:

我坚持的部分实际上是根据我的签名密钥验证签名。我似乎无法让这部分工作。现在我正在尝试使用njwt此处找到的节点模块:https ://www.npmjs.com/package/njwt 。

IDToken以 3 部分.分隔的 base64 编码字符串和secretKey以下 Javascript 对象的形式给出:

这是我用njwtnode 模块尝试过的:

当我以这种方式尝试时,我得到:

所以我想也许我需要通过secretKey.n而不是secretKey像这样:

当我以这种方式尝试时,我得到:

其次是我的console.log(err);

我应该如何通过secretKey?应该secretKey是什么,应该是什么样子?老实说,我什至不确定会发生什么njwt.verify

0 投票
0 回答
187 浏览

ios - AWS Cognito,AWSIdentityProviderManager 协议的登录方法没有被 iOS 调用

我们正在尝试使用 AWS Cognito 进行 Facebook 登录,但是当按照 AWS 文档与代码集成时,如下所示

我们AppDelegate.swiftdidFinishLaunchingWithOptions方法中编写的这段代码

在这里,我们看到 logins 方法没有被调用。

由于没有调用 logins 方法,我们无法将 facebook 身份验证令牌传递给 amazon cognito。

任何帮助将不胜感激。

0 投票
1 回答
1235 浏览

amazon-web-services - 网关 API 中的 Cognito 用户池授权器是否需要对所有请求进行签名?

使用 Cognito User Pool Authorizer 和 Gateway API的文档只说我应该:

  1. 调用使用用户池授权方配置的 API 方法,在 Authorization 标头或您选择的其他标头中提供未过期的令牌。

网络上的其他一些文本也反映了这一点。

但是,当我尝试使用令牌时,我收到一条错误消息,提示缺少Credentials, Signature, Signed Headersparams (和Date标头)。我使用的令牌很可能是正确的,因为通过了授权人的 web gui 中的测试。

我的问题有两个部分:

  • 这是否意味着使用 Cognito 用户池授权器需要我签署每个请求?有没有办法将它配置为只接受一个有效的令牌?

  • 如果我想保持对 Amazon Gateway 的 HTTP 调用简单并仅使用令牌对其进行授权(以便可以轻松地从 Python 后端等手动执行),我是否被迫使用 Lambda 编写自定义授权方?还是有更好的选择?