Git에 mongoDB URI 등 보호할 정보 숨기기
1. config 폴더 생성

2. dev.js에 개발단계에서 사용하는 정보 저장
3. prod.js에 배포 시에 사용될 정보 저장
module.exports = {
mongoURI: process.env.MONGO_URI
}
4. key.js에 조건 설정
if(process.env.NODE_ENV == 'production') {
module.exports = require('./prod');
} else {
module.exports = require('./dev');
}
5. index.js
const config = require('./config/key')
...
const mongoose = require('mongoose')// mogoose: nodejs와 mongoDB 연결하는 ODM
mongoose.connect(config.mongoURI)// URI 숨기기
.then(() => console.log('MongoDB Connected...'))
.catch(err => console.log(err))
...
* gitignore에 dev.js 추가
Bcrypt
https://www.npmjs.com/package/bcrypt
bcrypt
A bcrypt library for NodeJS.. Latest version: 5.0.1, last published: a year ago. Start using bcrypt in your project by running `npm i bcrypt`. There are 3401 other projects in the npm registry using bcrypt.
www.npmjs.com
- 비밀번호를 암호화 하여 데이터베이스에 저장

npm install bcrypt
1. Register Route
2. 유저 정보를 저장하기 전에 암호화 코드 작성: User.js에 pre() 작성
(1) salt 설정
const bcrypt = require('bcrypt');
const saltRounds = 10;// salt 글자 수
(2) salt와 hash를 생성 -> salt를 이용하여 비밀번호 암호화
userSchema.pre('save', function(next) { // User 저장 전에 처리할 내용
const user = this;
if(user.isModified('password')) {// 비밀번호 변경 시에만 암호화
// 비밀번호 암호화
bcrypt.genSalt(saltRounds, function(err, salt) {
if(err) return next(err)
bcrypt.hash(user.password, salt, function(err, hash) { // hash: 암호화된 비밀번호
if(err) return next(err)
user.password = hash;
next(); //다음 동작 호출
});
});
} else {
next();
}
});


'개발 > JavaScript' 카테고리의 다른 글
| [Node.js] Auth route, Logout Route (0) | 2022.07.22 |
|---|---|
| [Node.js] login route (0) | 2022.07.22 |
| [Node.js] npm, express, mongoDB, 라이브러리 (0) | 2022.07.21 |
| [바닐라 JS] PaintJS - Fill, Save (0) | 2022.04.04 |
| [바닐라 JS] PaintJS - color, brush (0) | 2022.04.03 |