2017-09-04 1 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

누군가가 실제로 지난 밤에 같은 문제가있었습니다. 그들의 문제는 패키지를 업데이트해야했습니다. 나는 당신이 최신 버전인지 확인합니다.

관련 문제