본문 바로가기

Node.js

[Node.js] 로그아웃 기능 https://youtu.be/zye0VrVUfuI?si=9Tmd6CsGreZ3m3SL 본 포스팅은 John Ahn 님의 유튜브 강의를 참고하였습니다. 안녕하세요 오늘은 로그아웃 기능을 구현하는 방법을 알아보도록 하겠습니다. 로그아웃은 로그아웃 라우터를 만들고 데이터베이스에 있는 로그아웃 하려는 유저의 토큰을 지워주기만 하면 됩니다. 먼저 로그아웃 라우터를 만들어 보겠습니다. server.js파일로 가서 app.get함수를 만들어 줍시다. app.get('/api/users/logout', auth, async (req, res) => { try { const updatedUser = await User.findByIdAndUpdate(req.user._id, { token: "" }, { new: tr.. 더보기
[Node.js] Auth 기능 만들기 https://youtu.be/OGVsnbEbSLM?si=Wvx3Btu8ptwH0WYH 본 포스팅은 John Ahn님의 유튜브 강의를 참고하였습니다. 웹 서비스에서는 로그인 여부에 따라 접속할 수 있는 페이지가 있고, 회원만 사용할 수 있는 페이지가 있습니다. Auth 기능은 라우팅을 통해서 이것을 구분해주는 역할을 합니다. Auth의 기본적인 개념은 Client에서는 쿠키에 담겨져 있는 토큰을, Server에서는 DB에 담겨져 있는 토큰을 서로 비교하는 것입니다. 먼저 쿠키에 있는 토큰을 가져와서 복호화하고 토큰을 비교해야합니다. 이를 위해서는 먼저 get요청을 해야합니다. app.get('/api/users/auth',auth, (req,res)=>{ res.status(200).json({ _id:.. 더보기
[Node.js] 로그인 기능 https://youtu.be/HcAYHUHTNi4?si=_P73OEjAh9ODPZq1 https://youtu.be/yWRj4GxFcr8?si=Qf7vOOcYPnV1p9Mb 본 포스팅은 John Ahn님의 유튜브 강의를 참고하였습니다. 오늘은 로그인 기능을 구현해 보도록 하겠습니다. 먼저 로그인 Route를 server.js에서 만들어 줍니다. app.post('/login', (req,res)=>{ //로그인 데이터를 가져온다 }) 로그인을 하려면 3가지 단계가 필요합니다. 1. 로그인 하려는 이메일이 데이터베이스에 존재하는지 확인한다. 2. 이메일이 존재한다면 비밀 번호가 맞는 비밀번호인지 확인한다. 3. 비밀 번호가 맞다면 토큰을 생성한다. 먼저 첫 번째 단계부터 구현해 보도록 하겠습니다. Use.. 더보기
[Node.js] 정보 암호화 및 관리2 - Bcrypt 본 포스팅은 John Ahn님의 유튜브 강의를 참고했습니다. https://youtu.be/XonyJxSDoGE?si=h5cZ3SChsfjVEVxs 저번에 Postman으로 MongoDB에 데이터를 넘겼었는데 확인해보니 데이터가 없었습니다. 왜 그런가 살펴봤더니 URL에 문제가 있었습니다. "mongodb+srv://아이디:비번@todolist.5fpaal7.mongodb.net/데이터베이스이름?retryWrites=true&w=majority" MongoDB의 주소 형식인데 제가 데이터베이스 이름을 입력하지 않았었습니다. 지금은 이렇게 Postman으로 데이터를 넘기면 잘 넘어옵니다. 저번 시간에는 MongoDB의 주소 비밀번호를 암호화 해봤는데요. 오늘은 Bcrypt라는 것을 이용해서 로그인 할 때 .. 더보기
[Node.js, Git] 정보 암호화 및 관리 MongoDB의 URL은 'mongodb+srv://아이디:비번@todolist.5fpaal7.mongodb.net/?retryWrites=true&w=majority' 이런 형식입니다. 소스 파일들을 배포하게 되면 비밀번호가 그대로 유출될 수 있습니다. 그래서 이런 중요한 정보들은 따로 관리해 줘야 합니다. 방법이 dev, prod 2가지가 있는데요. 먼저 config라는 폴더를 하나 만들어 봅니다. config 안에는 dev.js, key.js, prod.js파일이 들어갑니다. 1. dev는 development의 약자로 개발중인 상태에서 쓰이는 암호화 파일입니다. module.exports = { mongoURI : "mongodb+srv://ekdh3904:fogus12@todolist.5fpaa.. 더보기
[Node.js] Nodemon 모듈 서버를 실행하면 서버의 내용을 수정할 때 마다 서버를 껐다 다시 켜야하는 번거로움이 있는데 Nodemon이라는 모듈을 사용하면 이런 수고를 줄일 수 있습니다. npm i nodemon --save-dev 이것을 터미널에 입력해서 nodemon을 설치해줍니다. --save뒤에 -dev를 붙이는 이유는 개발자 모드(로컬) 일때만 적용하려고 하기 위함입니다. 설치가 완료되면 packege.json에 scripts 부분에 항목을 추가해야 합니다. "start": "node server.js", "backend" : "nodemon server.js", start에서는 node server.js를 통해 서버를 열었고, backend라는 항목을 추가해서 nodemon으로 서버를 열 수 있게 해줍니다. 그럼 터미널에.. 더보기