분류 전체보기
-
#14 로그아웃 기능Node.js/[챕터1] 2021. 6. 8. 00:39
[1]토큰으로 인증하기 떄문에 토큰만 지우면 로그아웃이 된거다. app.get('/api/users/logout', auth, (req, res) => { User.findOneAndUpdate({ _id: req.user._id}, { token: ""} ,(err, user)=>{ if(err) return res.json({ success:false, err}); return res.status(200).send({ success: true }) } ) })
-
#13 Auth 기능 만들기Node.js/[챕터1] 2021. 6. 8. 00:28
[1] middleware 폴더생성 auth.js 파일생성 /middleware/auth.js const { User } = require("../models/User"); let auth = (req, res, next) => { //인증 처리를 하는곳 //클라이언트 쿠키에서 토큰을 가져온다. let token = req.cookies.x_auth; //토큰을 복호화 한후 유저를 찾는다. User.findByIdToken(token, (err, user) => { if(err) throw err; if(!user) return res.json({ isAuth : false, err: true}) //라우터에서 req.token , req.user이런식으로 사용할 수 있게 할려고 넣어줌 req.token..
-
#12 토큰 생성 with jsonwebtokenNode.js/[챕터1] 2021. 6. 7. 23:59
[3] 비밀번호까지 맞다면 토큰을 생성하기. -jwt 토큰 라이브러리 다운로드 npm install jsonwebtoken --save npm install cookie-parser --save index.js //2.요청된 이메일이 데이터베이스에 있다면 비밀번호가 맞는 비밀번호 인지 확인. user.comparePassword(req.body.password , (err, isMatch ) => { if(!isMatch) return res.json({ loginSuccess : false, message : "비밀번호가 틀렸습니다."}) //3.비밀번호 까지 맞다면 토큰을 생성하기. user.generateToken((err,user) => { if(err) return res.status(400)...
-
#11 로그인 기능 with Bcrypt (1)Node.js/[챕터1] 2021. 6. 7. 23:30
index.js login 라우터를 생성 app.post('/login', (req, res) =>{ //내용 }) [1] 요청된 이메일을 데이터베이스에서 있는지 찾는다. [2] 요청된 이메일이 데이터베이스에 있다면 비밀번호가 맞는 비밀번호 인지 확인. //1.요청된 이메일을 데이터베이스에서 있는지 찾는다. User.findOne({ email: req.body.email }, (err, user) => { if(!user){ return res.json({ loginSuccess : false, message : "제공된 이메일에 해당하는 유저가 없습니다." }) } //2.요청된 이메일이 데이터베이스에 있다면 비밀번호가 맞는 비밀번호 인지 확인. user.comparePassword(req.body...
-
#10 Bcrypt로 비밀번호 암호화 하기Node.js/[챕터1] 2021. 6. 7. 22:41
[1]Bcrypt 라이브러리 다운 npm install bcrypt --save [2] 비밀번호 암호화 부분 //index.js app.post('/register', (req, res) => { const user = new User(req.body) //userSchema.pre('save', function() { User 모델에 있는 이게 실행됨 여기부분!! user.save((err, userInfo) =>{ if(err) return res.json({ success: false, err}) return res.status(200).json({ success:true }) }) }) [3] 모델에서 로직추가 models/User.js const bcrypt = require('bcrypt');..
-
[8]#9 비밀 설정 정보 관리Node.js/[챕터1] 2021. 4. 30. 00:15
코드안에 숨겨야할 정보 예) db정보등을 숨기기 위한 작업. 1.conf폴더 / dev.js, key.js, prod.js 파일을 만든다 2. dev.js (로컬에서만 쓸때 중요정보 보관하는곳)에서 module.exports = { mongoURI: '몽고dbURL' } 3.key.js if(process.env_NODE_ENV ==='production'){ module.exports = require('./prod'); } else{ module.exports = require('./dev'); } local 환경이면 process.env_NODE_ENV가 development로 나오고 배포한 후라면 production이 나와서 그에 따른 config파일을 가져온다. 3.prod.js module.e..
-
[7]#8 Nodemon 설치Node.js/[챕터1] 2021. 4. 29. 22:38
Nodemon이란 node.js 서버단에서 수정을 했을때 코드를 반영을 하려면 서버을 껏다가 다시켜야하는 번거로움이 있는데 이를 소스코드의 변화를 감지하여 자동으로 해주는 모듈 1. nodemon 설치 npm install nodemon --save-dev 2.package.json에서 script 하나 더 만들기 "scripts": { "start": "node index.js", "nodemong" : "nodemon index.js", "test": "echo \"Error: no test specified\" && exit 1" }, //package.json 3. 터미널에 npm run nodemong 잘반영된다!.