所以我遇到了这个问题。我有一个已通过电子邮件验证为false的用户。
因此,当我尝试按以下方式重置该用户的密码时,会给我用户未验证的错误。
Person.resetPassword({
email: email
}, function (err) {
if (err) return res.status(422).send(err);
});
因此,如果用户的emailVerified为false,我将为用户创建具有令牌数据的令牌,如下所示:
const tokenData = {
ttl: 900,
scopes: ['reset-password'],
};
user.createAccessToken(tokenData, req, function (err, token) {
//email link with token
});
现在,当我尝试通过以下请求更改密码时。
/api/people/reset-password?access_token=generated-token and data message as {newPassword: “newPassword”}
我在POST中被拒绝访问/ api / people / reset-password?access_token = token-Person.setPassword()的上下文范围
仅针对生成的令牌(针对已验证用户或未验证用户)发生这种情况。如果验证的用户请求密码更改成功,则可以通过以下代码完成。
Person.resetPassword({ email: email }, function (err) { if (err) return res.status(422).send(err); });
我在个人模型中具有以下设置,已删除,但仍然显示访问被拒绝。
"restrictResetPasswordTokenScope": true,
"emailVerificationRequired": true,
所以我遇到了这个问题。我有一个已将emailVerified验证为false的用户。因此,当我尝试按以下方式重置该用户的密码时,会给我用户未验证的错误。 Person.resetPassword({...
我在loopback/common/models/user.js
中找到了此代码: