如何重置未通过环回验证电子邮件的用户的密码?

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

所以我遇到了这个问题。我有一个已通过电子邮件验证为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 reset-password
1个回答
0
投票

我在loopback/common/models/user.js中找到了此代码:

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