2017-09-04 79 views
0

我想擁有用戶可以更改密碼的功能。 我已經實現了一個路線('/ resetPasswd')是這樣的:passport-local-mongoose changePassword功能

UserRouter.route('/resetPasswd') 

.post(function (req, res, next) { 
    passport.authenticate('local', function (err, user, info) { 
     user.changePassword(req.body.oldPassword, req.body.newPassword, function (err, user) { 
      if (err) next(err); 
      res.json('password changes successfully !'); 
     }) 
    })(req, res, next); 
}); 

這是我送的身體:

{ 
    "oldpassword": "secret", 
    "newPassword": "new" 
} 

但我得到這個錯誤作爲迴應:

{ 
    "message": "user.changePassword is not a function", 
    "error": {} 
} 

,這是我的架構的照片:

用戶模式:

user schema

我不認爲我應該在我的架構聲明changePassword功能(因爲它是由護照本地貓鼬提供的,雖然我加入,但仍得到同樣的錯誤)我在這裏犯了什麼錯誤?

+0

如果您有任何問題,您可以向我們展示您的架構和中間件嗎? – turmuka

+0

回覆此鏈接http://sahatyalkabov.com/how-to-implement-password-reset-in-nodejs/它將會對你有所幫助... –

+0

@turmuka:我已經提供了我的架構圖片我的文章 –

回答

1

昨晚有人遇到了同樣的問題。他們的問題是需要更新的軟件包。我會檢查你是否在最新版本。