티스토리 뷰

728x90
반응형

비밀번호는 아무리 판매자라 하여도 사용자의 비밀번호를 보아서도 알아서도 안된다.

그렇기에 비밀번호를 암호화하는 것이 중요하다.

이번에는 bcrypt 패키지를 이용하여 회원가입 시 암호화를 진행하려 한다.

 

 

 

일단 mongoDB를 확인하면 맨 처음 가입 시 테스트했던 것을 확인하면, 비밀번호가 너무 잘 보인다.

암호화없이 회원가입

그래서 그 부분을 보완하기 위해서 bcrypt패키지를 설치해야 한다.

bcrypt를 설치하자

yarn add bcrypt
OR
npm install bcrypt

moduls/User.js

...
const bcrypt = require('bcrypt');
const saltRounds = 10;
...
userSchema.pre('save', function(next){ // 회원가입할 정보를  저장하기 전에 함수 실행
    let 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) {
                if(err) return next(err)
                user.password = hash
                next()
            })
       
        })
    } else {
    	next()
    }
})

이 함수는 index에서 회원가입을 할 때 비밀번호를 저장하기 전(pre)에 암호화시키는 코드로 bcrypt에 설명이 되어있지만, 아직은 잘 이해가 가지 않는다.

 

상단의 saltRounds는 10자리인 salt를 생성하고, 이 salt를 이용하여 비밀번호를 암호화한다고 한다. 그리고 다시 테스트를 진행한다.

postman을 통해 회원가입 진행 테스트

테스트를 통해 오류가 없는지 확인한다. 물론 yarn run start를 진행한다. 그러면 이번에는 암호화된 비밀번호가 들어간 것을 확인할 수 있다.

암호화로 들어온 비밀번호는 이제 관리자는 볼 수 없다.

 

 

 

이전에 파이썬 장고로 진행할 땐 Auth라는 인증토큰기반을 통해 진행을 하였는데 이번에 해본 것은 어찌 보면 노드만의 간소화된 암호화인가 싶다.

아직은 완벽히 이해도가 있지는 않지만, 어떻게 굴러가는지 큰 틀을 이해하는게 더 중요하기에 오늘도 여기까지만 진행하도록 하겠다.

 

오늘의 코드 확인하기

728x90
반응형
댓글
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
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 31
글 보관함