jwt로 로그인 토큰 생성 중 아래와 같은 에러가 떴다.
Error: Expected "payload" to be a plain object.
userSchema.methods.generateToken = function(cb){
var user = this;
//jsonwebtoken을 이용해사 token 생성하기
var token = jwt.sign(user._id, 'secretToken');
//user._id+'secreatToken' = token : 'secretToken'->user._id
user.token = token;
user.save(function(err, user){
if(err) return cb(err);
cb(null, user);
});
}
기존 토큰 생성 시 위와 같은 코드로 구현하였는데
위 코드 중
var token = jwt.sign(user._id, 'secretToken');
이 부분을 수정해주어야 한다.
user._id를
user._id.toJSON() 혹은 user._id.toHexString()으로 수정해주면 에러 없어짐
'Node.js' 카테고리의 다른 글
[Node.js] 프로젝트 서버 heroku에 배포하기-github 연동 (0) | 2022.06.29 |
---|---|
[Node.js] body-parser (0) | 2022.04.05 |
[Node.js] Mongoose connect option is not supported (0) | 2022.04.01 |
[Node.js] mysql, sequelize 데이터베이스 세팅 (0) | 2022.03.25 |
[Node.js] 폴더 구조 정리 (0) | 2022.03.24 |