我有一个使用 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 用户池中是否存在此流程?
如有任何帮助,我们将不胜感激!
这个实现最终是正确的。问题在于 AWS Cognito UI 中的消息传递未正确配置。为了将来参考,必须编辑用户池 -> 用户池 -> 消息 -> 电子邮件,以允许发送带有密码重置代码的电子邮件。