我正在尝试注册一个新用户,在创建用户时它会向用户发送一封邮件以完成注册,用户点击邮件中的验证按钮并重定向到要求用户填写密码的激活帐户页面。以下是点击邮件中的验证按钮时 appid 重定向到的 URL:
http://localhost:3000/#/changepassword?language=en&context=ZPCMgRf6_PgknrpZEwKkieo5Dq07MxeK
用户单击提交它会将 context 和 newPassword 作为 formData 发送到 api,并且在调用 api 时出现此错误:
{“errorCode”:404,“errorMessage”:“未找到上下文”}
以下是我为处理更改密码而编写的代码:
const SelfServiceManager = require("./lib/appid-sdk").SelfServiceManager;
let selfServiceManager = new SelfServiceManager({
iamApiKey: config.apikey,
managementUrl: config.managementUrl
});
routerAPI.post("/changePassword", function(req, res) {
let uuid
let language = req.query.language || "en"
// Return UUID and a Success Flag if verification link is valid
selfServiceManager.getSignUpConfirmationResult(req.query.context).then(function (response)
{
if (response && response.success) {
logger.debug('sign up result - success');
console.log(" Print uuid :::: ", response.uuid)
uuid = response.uuid
// Check user details when user is verified, pass uuid as input
selfServiceManager.getUserDetails(response.uuid).then(function (user) {
if (user.emails[0].value != "" || user.emails[0].value != undefined) {
// User is verified and its eligible to change password.
console.log(" **** Print user info :::: ", )
logger.info("User is verified, Proceeding to password change ...")
// API to set new user password
selfServiceManager.setUserNewPassword(uuid,req.query.newPassword).then(function (response) {
logger.debug("Password reset successfully")
res.json({ code: 200, message: "Password change successfully" });
})
} else {
// User is not verified and not eligible to change the password.
logger.debug("User not eligible to change password")
throw new Error ("User not eligible to change password")
}
})
}
}).catch((err) => {
logger.error(err)
console.log(err)
return errorResponse(res, err, tagName);
})
})
我是 APPID 和 NodeJS 的新手。我已经使用 NodeJS SDK 完成了 APPID 设置。
如果您需要更多信息,请告诉我!!
任何帮助表示赞赏......谢谢!