Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 자료구조
- Python
- Nest.js
- class
- nodejs
- nestjs
- Express
- dfs
- GIT
- cookie
- MongoDB
- OCR
- jest
- flask
- Bull
- Sequelize
- MySQL
- mongoose
- typeORM
- TypeScript
- react
- Dinosaur
- JavaScript
- 게임
- 정렬
- 공룡게임
- game
- Queue
- AWS
Archives
- Today
- Total
포시코딩
[bcrypt] Error: Invalid salt. Salt must be in the form of: $Vers$log2(NumRounds)$saltvalue 본문
Node.js
[bcrypt] Error: Invalid salt. Salt must be in the form of: $Vers$log2(NumRounds)$saltvalue
포시 2022. 12. 21. 11:38728x90
문제 발견
async #encryptPsword(userInfo) {
// const saltRounds = 10;
const saltRounds = process.env.SALT;
console.log('saltRounds: ' + saltRounds);
return new Promise((resolve, reject) => {
bcrypt.hash(userInfo.password, saltRounds, (err, hash)=>{
if (err) {
reject(`${err}`);
} else {
userInfo.password = hash;
resolve(userInfo);
}
});
});
};
salt에 그대로 10을 넣어 쓰면 잘되는데, dotenv로 불러오는 값을 넣으면 아래와 같은 에러가 나오면서
해싱을 하지 못하고 있었다.
바로 이전에 sequelize에서 dotenv를 사용하지 못해 문제를 겪다가 겨우 해결하고 온 참이라
이번에도 dotenv 설정에 문제가 있나 고민을 하며 열심히 구글링 해봤는데
좀처럼 답이 나오지 않고 있었다.
원인 파악
console.log('saltRounds type: ' + typeof(saltRounds));
에러 메시지에서 NumRounds라는 글자를 보며 혹시..? 라는 생각에 env에서 가져온 값의 타입을 찍어봤다.
아.. 역시
값을 가져오면 문자 타입이 된다는걸 깜빡하고 있었다.
문제 해결
async #encryptPsword(userInfo) {
const saltRounds = parseInt(process.env.SALT);
console.log('saltRounds: ' + saltRounds);
return new Promise((resolve, reject) => {
bcrypt.hash(userInfo.password, saltRounds, (err, hash)=>{
if (err) {
reject(`${err}`);
} else {
userInfo.password = hash;
resolve(userInfo);
}
});
});
};
parseInt()로 감싸주니 단번에 해결됐다.
728x90
'Node.js' 카테고리의 다른 글
[Sequelize] FK(Foreign Key) 설정하기 (0) | 2022.12.21 |
---|---|
[Sequelize] config 파일에서 dotenv를 읽지 못하는 문제 (0) | 2022.12.21 |
[Sequelize] config.json에 dotenv 환경변수 사용하기 - 작성중 (0) | 2022.12.20 |
[Sequelize] 세팅 및 사용방법 (0) | 2022.12.20 |
미들웨어(Middleware) (0) | 2022.12.19 |