TIL/따라하며 배우는 노드 리액트(23)
-
#14 로그아웃 기능
[인프런] 따라하며 배우는 노드, 리액트 시리즈 - 기본강의를 들으며 정리한 내용입니다. 로그아웃 Route 만들어서 로그아웃 하려는 유저의 토큰을 데이터베이스에서 삭제해주기(index.js) 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 }) } })
2022.08.04 -
#13 Auth 기능 만들기
[인프런] 따라하며 배우는 노드, 리액트 시리즈 - 기본강의를 들으며 정리한 내용입니다. 페이지 이동 때마다 로그인 되어있는지 안되어 있는지, 관리자 유저인지 등을 체크하기위해서 필요 글을 쓸 때나 지울 때, 해당 권한이 있는지 등의 체크시에도 필요함 쿠키에 넣어준 토큰과 서버에 저장된 데이터가 동일한지 체크하는 과정 1. middleware폴더 생성, auth.js 파일 생성 const { User } = require('models/User'); let auth = (req, res, next) => { // 클라이언트 쿠키에서 토큰을 가져온다. let token = req.cookies.x_auth; // 토큰을 복호화 한 후 유저를 찾는다. User.findByToken(token, (err, u..
2022.08.04 -
#11,12 로그인 기능 with Bcrypt, jsonwebtoken
[인프런] 따라하며 배우는 노드, 리액트 시리즈 - 기본강의를 들으며 정리한 내용입니다. login Route 만들기(index.js) - jsonwebtoken, cookie-parser 설치 필요(npm install jsonwebtoken cookie-parser --save) //index.js const cookieParser = require('cookie-parser'); app.use(cookieParser()); app.post('/login', (req, res) => { User.findOne({email : req.body.email}, (err, user) => { // 1. 요청된 이메일을 데이터베이스에서 있는지 찾는다. if(!user){ return res.json({ log..
2022.08.04 -
#10 Bcrypt로 비밀번호 암호화 하기
[인프런] 따라하며 배우는 노드, 리액트 시리즈 - 기본강의를 들으며 정리한 내용입니다. 데이터를 받은 그대로 저장하면 안전하지 않기때문에 Bcrypt를 이용하여 비밀번호를 암호화 한 뒤 데이터 베이스에 저장해 줘야 한다. Bcrypt 설치하기 npm install bcrypt --save models/User.js 파일 수정 (bcrypt 사용방법 참고) const bcrypt = require('bcrypt'); const saltRounds = 10 //salt의 글자 수 userSchema.pre('save', function(next){ //user가 저장되기 전에 실행되는 함수 const user = this; if(user.isModified('password')){ //비밀번호가 변경될때만..
2022.08.03 -
#9 비밀 설정 정보 관리
[인프런] 따라하며 배우는 노드, 리액트 시리즈 - 기본강의를 들으며 정리한 내용입니다. 1. config 폴더생성 1-1) dev.js 파일 생성 (로컬 환경에서 사용) - development module.exports={ mongoURI: 'mongodb+srv://@boiler-plate.af6zkai.mongodb.net/?retryWrites=true&w=majority' } 1-2) prod.js 파일 생성 (배포한 후 사용) - production module.exports={ mongoURI: process.env.MONGO_URI } 1-3) key.js 파일 생성 if(process.env.NODE_ENV === 'production'){ module.exports = require(..
2022.08.03 -
#8 Nodemon 설치
[인프런] 따라하며 배우는 노드, 리액트 시리즈 - 기본강의를 들으며 정리한 내용입니다. Nodemon : 서버를 닫았다 열지 않아도 변경사항을 감지해서 서버를 재연결 해주는 역할을 한다. npm install nodemon--save-dev -dev : development mode, 개발할 때만 사용하겠다는 의미 서버연결할 때 nodemon으로 시작하기위해 스크립트 추가해주기 "backend" : "nodemon index.js" 사용예시 : npm run backend *윈도우에서 nodemon 실행이 안되는경우 → 터미널을 cmd로 바꿔주면 정상작동 한다.
2022.08.03