首页 > 解决方案 > 使用 JWT 管理 Cognito 用户池

问题描述

我有一个由经过身份验证的用户调用的 Node.js lambda API。用户可以通过有效的 JWT 令牌访问 API。现在我想与 Cognito 用户池交互以更改用户的电子邮件、密码等,但我还没有弄清楚如何仅使用 JWT 来实现这一点。

我使用 amplify-js 和 amazon-cognito-identity-js 进行了几次测试

标签: amazon-cognitoserverless-frameworkserverless

解决方案


您可以通过调用管理 API 调用来重置用户的密码,而不是通过 JWT 令牌。https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminResetUserPassword.html这将提示用户输入新密码。

此 API 调用是为该特定用户设置密码https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminSetUserPassword.html但我更喜欢第一个选项。

要更改用户属性(例如电子邮件、生日...),请使用https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminUpdateUserAttributes.html

所以所有这些都是使用 Lambda 中的 Cognito 服务完成的(不要与 JWT 令牌混淆)。


推荐阅读