로그인 Router생성
2022. 9. 4. 20:18
Backend/Node.js
보다 쉬운 이해를 위해 전체적인 흐름을 파악하면 좋을 것 같아서 우선 정리를 좀 해보겠다. 1. 요청된 이메일(or 아이디)을 데이터베이스에서 찾는다. 2. 요청된 이메일(or 아이디)가 데이터베이스에 있다면, 비밀번호가 같은지 확인한다. 3. 비밀번호까지 일치한다면 토큰을 생성해준다. 토큰은 id와 pw가 일치하는 사용자에게 제공하는 일종의 '본인 확인 수단'이다. 위의 흐름을 파악하면서 코드를 설명해 보겠슴다! 우선 post방식으로 client에서 요청된 정보를 가져옵니다. User.findOne : User는 스키마모델 객체이며 findOne메소드는 mongoDB에서 제공한다. 우선 req.body안에 들어있는 요청된 email과 DB에 있는 모든 email을 비교하여 해당 이메일이 있는지 확인한다..
bcrypt로 비밀번호 암호화하기
2022. 9. 4. 19:11
Backend/Node.js
client에서 사용자의 계정 정보 {name, password} 등을 받아서 DB에 그대로 저장하면 관리자는 그 password의 plaintext를 볼 수 있다. 그렇기 때문에 DB에 데이터를 저장하기 전 암호화하는 과정이 필요하다. 그 방법에 대해서 알아보자 위 이미지의 "user.save" 메소드는 /register 클라이언트에서 user가 계정 정보를 입력하면 mongoDB에 저장하는 역할을 한다. 이 메소드가 실행되기 전, 비밀번호를 hasing하는 과정이 필요한데 hashing은 user의 계정정보 schema를 모델링하여 export하기 전에 동작시켜주어야 한다. 위와 같은 스키마를 가진다고 할 때, bcrypt를 사용하려면 bcrypt모듈을 가져와야하고, salt넘버의 자리수를 얼마로 할..