如何实现忘记密码路由打字稿AWS Cognito用户池?

问题描述 投票:0回答:1

我有一个使用 AWS cognito 设置的打字稿项目。我创建了一个测试用户池,并成功实现了登录、注册、确认帐户的路由。目前,我正在研究忘记密码的路线。其代码如下。当我测试此代码时,我收到以下错误消息

Contact administrator to reset password.
是否可以创建此路由,以便确认的用户可以直接查看其密码,甚至重置其密码?

import AmazonCognitoIdentity from 'amazon-cognito-identity-js';

const UserPoolId = ************;
const ClientId = ************;
const region = ************

const config = {region: region }

export const resetPassword = async (req, res) => {
    try {
        const { username } = req.body;

        const poolData = {
            UserPoolId: ************,
            ClientId: ************,
          };
          
        const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);

        const userData = {
            Username: username,
            Pool: userPool,
          };

        const cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);

        
        cognitoUser.forgotPassword({
            onSuccess: (data) => {
                console.log(data)
                res.status(200).json({ message: "Password Reset"});
            },
            onFailure: (err) => {
                console.log('ERR:', err)
                res.status(401).json({ message: "Password Not Reset", error: err.message});
            },
        })
    }
    catch (err) {
        console.log("FAILED")
        console.log("Error"+ err.message)
        res.status(500).json({ message: "Password Not Reset", error: err.message});
    }
  };

我想到的流程是,如果选择此路线,用户可以直接重置密码,或者他们可以收到一封确认电子邮件,其中包含确认其帐户的代码,这样做时,他们可以获得新密码。 AWS Cognito 用户池中是否存在此流程?

如有任何帮助,我们将不胜感激!

typescript amazon-web-services amazon-cognito aws-userpools
1个回答
0
投票

这个实现最终是正确的。问题在于 AWS Cognito UI 中的消息传递未正确配置。为了将来参考,必须编辑用户池 -> 用户池 -> 消息 -> 电子邮件,以允许发送带有密码重置代码的电子邮件。

© www.soinside.com 2019 - 2024. All rights reserved.