일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 초보iOS개발자
- 비동기
- JavaScript
- 회고
- Swift알고리즘
- 개인앱
- git
- 알고리즘
- UIKit
- github
- iOS개발
- 스유
- 12회차
- Swift
- RxSwift
- Postman
- 글또x코드트리
- 글또9기
- 글또10기
- 글또
- 리액트입문
- 클린코드
- 유데미
- SwiftUI
- ios
- 글쓰기
- 개발회고
- 수정중
- ViewBuilder
- 왕초보
- Today
- Total
playground_avec coding
기밀 정보를 보호하는 방법 2가지 본문
1. 비밀정보를 따로 빼 둔다.
1.Process.env.NODE_ENV
Local 환경일 때, -development 모드
>> config 폴더를 생성하여 그 안에 dev.js 라는 파일을 만들어 관리한다.
git 커밋하여 푸시해 배포할 때, index.js 에 써놓은 기밀정보가 노출될 수 있음으로, mongoose password를 dev.js 에 따로 빼 두어 관리한다.
Deploy (배포)
- production 모드
>> heroku 사이트에서 관리해줘야 하는 환경
config 폴더 안에 dev.js 파일, prod.js 파일, key.js파일을 생성한다.
몽구스 문법으로 연결되었을 때, config 안에 mongoURI 라고
dev.js 파일 안에 ( 로컬환경에서 )
module.exports = {
mongoURI : 'mongodb+srv://사용자:password@cluster0.bnqwd.mongodb.net/myFirstDatabase?retryWrites=true&w=majority'
}
라고 지정해주었음으로, index.js 에 mongoose.connect(config.mongoURI~~ 로 추가해준다.
prod.js 파일 안에 ( 배포하는 환경) > production
module.exports = {
mongoURI : process.env.MONGO_URI
}
//heroku에서 MONGO_URI 를 지정해서 저장해줘야함.
heroku라는 프로그램으로 MONGO_URI 로 지정해서 저장해줘야한다.
key.js 에는
if(process.env.NODE_ENV === 'production'){
module.exports = require('./prod');
} else {
module.exports = require('./dev');
}
배포할 때, 서버에 배포하면 prod형식, 그게 아니면 dev형식으로 배포라고 조건을 걸어준다.
[git 커밋 전에]
.gitignore 에 따로 빼둔 파일을 설정해서 저장해 둘것, 그럼 github 같은 곳에 노출될 위험이 없다.
여태 수정한 소스코드 git 커밋
1.
>> git add .
2. staged area 에 올라옴
3. git comit
2. bcrypt 를 설치한다.
>database 에 저장된 비밀번호를 더 안전하게 저장하기 위해, bcrypt를 이용해 비밀번호를 암호화 해서 database에 저장한다.
vscode terminal에서 간단하게 npm install bcrypt --save 라고 치면 된다.
1, models 폴더 안에 user.js 에
bcrypt
A bcrypt library for NodeJS.
www.npmjs.com
여기 문법을 참조하여 작성해 준다.
*salt를 이용해 비밀번호 암호화를 해야한다.
1. user.js 에
const bcrypt =require('bcrypt');
const saltRounds = 10 으로 작성
설정되어 있는 userSchema 의 값을 이용해
비밀번호를 변경할 때만 암호화되고 email 변경시에는 비밀번호 암호화가 반복되지 않도록 조건을 걸어줘야한다.
*next 라는 parameter를 넣어주고 next( ) 호출해주기
사용자의 비밀번호가 변경되었을 때에만, salt를 생성시켜준다는 문법의 genSalt 사용하여
에러가 있다면 next(err)를 띄우고, 그게 아니라면 bcrypt.hash 에서 사용자의 비밀번호가 = hash 로 암호화 된다는 것을
나타낸다.
[ postman 에서 회원가입 정보 값에서 password 입력해서 확인해보기]
[ mongoDB 클러스터에 나의 database 저장소 안에 Test 결과 확인]
1. 처음에 postman 설치하고 test로 쳐본 나의 이메일 계정과 비밀번호
2. bcrypt 설치하고 test로 쳐본 이메일 비밀번호 >> 비밀번호가 암호화 되 있는 것을 확인할 수 있다.
'front-end > node.js' 카테고리의 다른 글
로그인기능 (0) | 2021.07.09 |
---|---|
[node mon] 설치하기 (0) | 2021.06.08 |
[client -server 테스트] Body-parser와 Postman 이용 (0) | 2021.06.08 |
[Mongo DB] 에서의 Model 과 Schema 의 개념, 역할 (0) | 2021.06.02 |
[Node.js] Mongo DB 연결하기 (0) | 2021.05.31 |