• Koa.js JWT 두가지 방법으로 전송하기

    헤더에 실어서 보내는 방법 ctx.set(name, value); name: 헤더 이름 value: 토큰 값을 여기에 작성한다. 응답헤더에 토큰을 넣어 보내게 되면 브라우저에서 헤더에 있는 토큰을 가져다 브라우저의 localStorage로 집어넣어 토큰을 유지시킵니다. 이후 토큰의 유효기한이 되기 전에 요청헤더에 토큰을 넣어 서버에 보내면 디코딩후 유효성 검증을 거친 후 토큰을 새로 발급해 앞선 방법과 똑같은...


  • Passport.js 구글 로그인 가져오기

    작업환경은 NodeJS, KoaJS, koa-passport, passport-google-oauth-jwt입니다. passport-google-oauth-jwt모듈 가이드에 따라 작성을 했습니다. 제 개인적인 패스포트에 대한 이해는 이렇습니다. 다른 사이트에서(예를 들어 구글) 로그인된 유저의 정보를 가져온다. db에 유저의 회원정보가 있나 조회한다. 있으면 로그인시킨다. 없으면 가져온 유저의 정보로 회원 생성을 시킨다. 생성시킨후 로그인시킨다. 로그인할때 세션에 정보를 저장시킨다. 혹은 쿠키에 jwt를 담아 저장한다. 로컬...


  • Koa.js 가독성 좋게 재작성하기

    작업환경은 Node.js v8, Koa.js, Sequelize.js(MySQL)입니다. API 작성전 모듈을 작성합니다. // services/user.js const Users = require('../db/models').User; 먼저 sequelize 폴더에서 Users테이블을 가져옵니다. cli를 사용해서 작성했기 때문에 파일명이 자동생성되어 단수 로 생성됨을 참고 바랍니다. 테이블이름은 복수 입니다. // services/user.js const addUser = user => Users.create(user); const getUserByUserId = userId => Users.findOne({ where: {...


  • Sequelize.js 모델 정의하기

    본 포스팅은 sequelize-cli를 사용하였습니다. 디렉토리 구조는 아래와 같습니다. ├─config │ └─config.json ├─migrations │ (...) ├─models │ └─index.js └─seeders (...) 이 글을 쓰는 목적은 sequelize가 v4로 업데이트 되면서 바뀐 사항들이 꽤나 있습니다만, 포스팅이나 튜토리얼을 보면 예전방식으로 쓰여진 곳이 많더라구요. 대부분 deprecated메시지를 띄울뿐 에러는 띄우지 않는데 models폴더에서 테이블 정의할때 기본키(PK), 외래키(FK) 지정에...


  • Javscript 반복문

    반복문 (Loop) for for (let i = 0; i < 10; i++) { // (초기값; 조건식; 증감식) console.log(i); } 반복횟수를 정할 수 있기 때문에 몇번 반복될지 알때 사용합니다. for in문 const object = { 1: 'a', 2: 'b', 3: 'c', 4: 'd' }; // 객체 for (let i in object)...