티스토리 뷰

routes/users.js

const express = require('express');
const router = express.Router();
const passport = require('passport');
const jwt = require('jsonwebtoken');

const User = require('../models/user');

// 여기부터
router.post('/register', (req, res, next) => {
  let newUser = new User({
    name: req.body.name,
    email: req.body.email,
    username: req.body.username,
    password: req.body.password
  });

  User.addUser(newUser, (err, user)=>{
    if(err) {
      res.json({success: false, msg: 'Failed to register user'});
    } else {
      res.json({success: true, msg: 'User registered'});
    }
  });
});
//여기까지 추가

module.exports = router;

 

사용자 입력창에서 입력하는 값들은 newUser 변수에 지정

newUser 값으로 새로운 사용자 등록 (models/user.js에 addUser라는 함수 만들어야함)

 

models/user.js

module.exports.addUser = function(newUser, callback){
  bcrypt.genSalt(10, (err, salt) => {
    bcrypt.hash(newUser.password, salt, (err, hash) => {
      if(err) throw err;
      newUser.password = hash;
      newUser.save(callback);
    });
  });
}

 

Bcrypt에서 

  • getSalt() = salt 값 생성

  • 10 : 라운드 수 

  • hash() : 사용자 입력 패스워드와 salt를 이용하여 해쉬값 hash 생성

-> 계산된 해쉬값을 패스워드 필드에 덮어쓴 후 DB에 저장함

 

  

'웹 공부 > 웹 개발 (MEAN)' 카테고리의 다른 글

Angular) Angular 기본 사용 방법  (0) 2020.01.02
Angular) Angular란? & 설치 방법  (0) 2020.01.02
Node.js) MongoDB 연결  (0) 2020.01.02
Node.js) 새로운 루트 추가  (0) 2020.01.02
Node.js) body-Parser  (0) 2020.01.02
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday