파일을 키워드 별로 자동 정리하는 방법
·
Others
로스트아크 하다가 스크린샷 폴더에 파일이 너무 많아서 캐릭터 별로 폴더를 만들어 정리하려고 했다. 그런데 일일이 하는 건 너무 귀찮고, 나중에도 쓰려고 ChatGPT와 함께 스크립트를 짰다. 참고로 내가 읽기 편한 Javascript(Node.js)로 짜서 Node.js 설치가 필요하다.스크립트 설명특정 키워드를 이름으로 하는 폴더를 만들고, 해당 키워드가 포함된 파일들을 폴더에 자동으로 정리한다.예를 들어 "초코우유_01.png", " 초코우유_02.png"와 같은 파일이 있다고 하자. 만약 " 초코우유"를 키워드로 하면 " 초코우유"라는 폴더를 만들고, 이름에 "초코우유"가 포함된 파일들을 이 폴더에 집어넣는 구조이다. 주의사항파일 이름에 특정 키워드가 들어가야만 사용할 수 있다.키워드가 다른 키워드..
[Node.js login] 04 Logout 기능 만들기
·
Backend
이 글에서는 user가 로그아웃을 시도할 때 로그아웃시키는 기능을 만드는 방법을 알아본다. (이전 글과 이어짐) 일단 로그아웃이 되려면 로그인이 되어 있는 상태여야 한다. 이전 글들에서, 로그인한 user가 뭘 하려고 하면 그 때마다 인증을 거친다고 했다. 만약 인증이 안되면? 로그인이 풀려버린다. 그러니까 로그아웃은, 로그아웃을 시도한 user를 DB에서 찾고 해당 user의 token을 삭제하면 끝이다. 1. Logout 코드 짜기 index.js /* logout */ // 로그아웃하려면 일단 로그인이 된 상태이므로 auth 미들웨어 함수를 추가함 app.get('/logout', auth, (req, res) => { // DB에서 로그아웃을 시도하는 user의 token을 삭제하면 // 인증이 ..
[Node.js Login] 03 Auth 기능 만들기
·
Backend
이 글에서는 user가 로그인한 후 생성된 token을 가지고 user를 인증(authentication)하는 기능을 만든다. (이전 글과 이어짐) 1. Token을 이용한 Auth 과정 이전 글에서 token이 어떻게 쓰이는지 설명했었는데, 다시 상기시켜보자. client의 token은 client쪽과 server쪽에 동일하게 저장되어 있고, token은 client가 server에게 새로운 요청을 보낼 때 'it's me' 의 용도로 함께 보내진다. server는 그 token을 받아서 decode하고, decode한 결과 즉, user의 id를 DB에 검색한다. server는 id가 일치하는 user의 정보에 있는 token과 client에게 받은 token을 비교한다. 둘이 서로 일치하면 인증에 ..
[Node.js Login] 02 로그인 정보와 DB 데이터 비교하여 로그인하기 & Token 만들기 (using jsonwebtoken)
·
Backend
이 글에서는 DB에 저장한 사용자 정보(name, email, password ...)와 사용자가 요청한 로그인 정보(email, password)를 비교해 사용자를 인증하고, 인증된 사용자에게 token을 부여하며, 로그인을 성공/실패했다는 메시지를 출력하는 기능을 만드는 방법을 알아본다. (이전 글과 이어짐) 1. login route 만들기 사용자로부터 login 정보(email, password)를 받기 위해 login route를 post로 만든다. app.post('/login', (req, res) => { // 로그인 과정 // 로그인 성공/실패 여부 메시지 출력 }) 다음으로 로그인 과정을 생각해보면, 다음과 같다. 우선 사용자가 입력한 email과 일치하는 email이 DB에 있는지 찾..
[Node.js Login] 01 Bcrypt를 이용해 비밀번호를 암호화하여 DB에 저장하기
·
Backend
DB에 데이터를 저장할 때, 비밀번호와 같은 민감한 정보는 암호화하는 것이 안전하다. 본문에서는 Bcrypt와 MongoDB에서 제공하는 pre함수를 이용해 비밀번호 데이터를 DB에 저장하기 전에 암호화하는 방법을 알아보려 한다. (이 글은 John Ahn 님의 따라하며 배우는 노드, 리액트 시리즈 강의를 수강하며 작성한 글임) (다음 글과 이어짐) 1. 기존 코드 index.js에 아래와 같은 register route가 있고, DB에 save하는 작업이 여기서 일어난다. const { User } = require("./models/User"); app.post('/register', (req, res) => { const user = new User(req.body); //parse한 body 데이..