본문 바로가기
728x90

Front-end/Node.js9

#9. 로그아웃 기능 로그아웃 기능 만들기 🔐 1. 로그아웃 Route 만든다. 2. 로그아웃 하려는 유저를 데이터베이스에서 찾는다 3. 유저의 토큰을 지워준다. Auth에서 인증을 할 때 Client 에 있는 Cookie Token을 가져와서 DB Token과 맞는지 비교하여 인증을 한다. 로그아웃 시 Token을 지우게 되면, 로그아웃이 바로 진행 된다. // 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(2.. 2021. 1. 11.
#8. Auth 기능 만들기 Auth 를 왜 만들어야 하나 😉 ? 1. 페이지 이동 시 로그인되어있는지 안되어있는지, 관리자 유저인지 등을 체크 2. 글을 작성하거나 지워야 할 때, 권한이 있는지 체크 How !! 1. Cookie 에서 저장되어있는 Token을 Server에 가져와서 복호화를 한다. 2. 복호화를 하면 User ID가 나오게 된다. 그러한 User ID 를 이용하여 데이터베이스 User Collection에서 유저를 찾은 후, 쿠키에서 받아 온 token이 유저도 갖고있는지를 확인한다. User.js // user.js ... userSchema.statics.findByToken = function ( token , cb ) { var user = this; user._id + '' = token; // 토큰을 .. 2020. 12. 26.
#7. Bcrypt 로 비밀번호 암호화 하기 Bcrypt (비크립트) ? 회원가입 시 비밀번호 문자열을 그대로 DB에 저장하는 것은 굉장히 위험하고 안전하지 않다. 그렇기떄문에 Bcrypt ( 비크립트 ) 를 이용하여 password를 암호화 하여 데이터 베이스에 저장해줘야 한다. * bcrypt는 단방향 암호화이기 때문에 복호화가 불가능하다. ( 복호화란? 암호화된 문자열을 다시 원래 문자열로 해독하는 것을 의미 ) 설치 ⚙️ > npm install bcrypt --save Bcrypt 로 비밀번호 암호화하는 순서 🧏🏻‍♀️ 1. Register Route로 가기 2. 유저 정보들 ( Account, Password 등등 ) 을 데이터 베이스에 저장하기 전에가 암호화 할 타이밍이다. www.npmjs.com/package/bcrypt bcryp.. 2020. 12. 12.
#6. 환경 변수 process.env.NODE_ENV 설정하기 비밀 설정 정보 관리 🔐 git에 올릴때 DB 또는 IP 등의 정보를 비밀로 설정하기 위해 .gitignore에 설정을해주어야한다. config라는 폴더를 만들고, dev.js 파일을 만들어 다음과 같이 설정해준다. 환경변수 process.env.NODE_ENV ⚙️ 보통 개발을 진행할때 두가지의 환경에서 할 수 있다. Local환경의 development 환경, Deploy(배포)한 후 production 환경으로 나뉜다. 따라서 개발환경과 운영서버환경에서의 환경 변수를 따로 설정해주어야한다. 다음과 같이 개발서버, 운영서버의 환경을 나누어줄 파일을 생성하여 각각 다음과 같이 작성해준다 dev.js ( 개발 서버 ) module.exports = { mongoURI:'개인 mongoDB' }; key... 2020. 11. 25.
반응형