목록웹 개발 (224)
dukDukz
기본 세팅을 마치고 (npm i express) 1. 시퀄라이즈 세팅 npm i sequelize 클래스 사용 위한 패키지 npm i mysql2 DB 접속을 위한 패키지 npm i sequelize-cli npx를 사용하기 위한 패키지 (*폴더 만들어줘야 하니까) npx sequelize init localhost -u "root" -p "port" -x "password" -e "mysql" [순서] 더보기 npm install sequelize-auto sequelize-auto -o "./models" -d class -h "localhost" -u "root" -p "3306" -x "root" -e mysql 이게 안되면 npm install -g sequelize-auto npx sequel..
class 라는 db 안에 있는 테이블들 내가 사용하는건 curriculum skill curr_id = 4 인것만 골라서 그걸 A 라고 부른다. skill_item 얘는 B 라고 부른다 SELECT B.name,B.type FROM (SELECT * FROM skill WHERE curr_id = 4) AS A LEFT JOIN skill_item AS B ON A.item_id = B.id; B의 name 과 type 만 가져오는데 A의 item_id 와 B의 id 가 같은 것만 가져온다. A 옆에 B를 붙여라 결과가 이렇게 나온다.
우선 소켓은 기본적으로 두가지 함수를 가지고 있다. 클라이언트, 서버 둘 다 포함된다. socket.on(); : 데이터를 받는 함수 socket.emit(); : 데이터를 보내는 함수 여기서 저 두개의 함수 안에 쓰이는 'send' , 'call' 은 아무 이름으로나 정해주면 된다. 보내는 부분, 받는 부분이 서로 send / call 로 일치하기만 하면 된다. server.js 기본 설정 부분 part 1 const express = require('express'); const nunjucks = require('nunjucks'); const app = express(); const socket = require('socket.io'); const http = require('http') cons..
전체 코드 더보기 server.js const express = require('express'); const app = express(); const socket = require('socket.io'); const http = require('http') const server = http.createServer(app); const io = socket(server); const nunjucks = require('nunjucks'); app.use(express.static('./node_modules/socket.io/client-dist')) app.set('view engine','html'); nunjucks.configure('views',{ express:app }) app.get('/..
전체 구조 메인페이지에서 로그인 시도 로그인 완료 되면 토큰 생성 - user info 에서 id 확인가능 로그인 실패하면 재시도 요청 로그인 시간 만료되면 쿠키 없어짐 - 로그인 만료처리됨 폴더 트리 auth.js : 로그인 검증할때 토큰이 유효한지 인증하는 파트이다. main.js : html의 동작을 제어한다 .env : 두번째 인자값을 숨긴다. jwt.js : token 을 생성해주는 역할 1. html 과 css 먼저 꾸며주자 더보기 main.html 로그인 회원정보 보기 로그인페이지 로그인 카카오로그인 아직도 회원이 아니세요? 회원가입 main.css *{ margin: 0; padding: 0; } .layerPopup{ display: none; position: fixed; top: 0;..
전체 코드 더보기 createtoken.js const crypto = require('crypto') function createtoken() { let header = { "alg": "HS256", "typ": "JWT" } let encode_header = Buffer.from(JSON.stringify(header)) .toString('base64') .replace("=", ''); let payload = { "sub": "1234567890", "name": "John Doe", "user": "jjun97", "iat": 1516239022 } let encode_payload = Buffer.from(JSON.stringify(payload)) .toString('base64') ...
이 사진을 참고해서 header, payload, verify signature 부분에 어떤걸 넣어야 할지 체크해보자 token 생성의 전체 코드이다. createtoken.js const crypto = require('crypto') function createtoken() { let header = { "alg": "HS256", "typ": "JWT" } let encode_header = Buffer.from(JSON.stringify(header)) .toString('base64') .replace("=", ''); let payload = { "sub": "1234567890", "name": "John Doe", "user": "jjun97", "iat": 1516239022 } let ..
여러 서버에서 client의 로그인 값을 가질 수 있도록 하려고 jwt (토큰) 을 사용하는 것이다. client가 너무 많아서 서버 한대로 돌리기가 어려운 경우, 서버를 여러대 돌리게 된다. 사용자가 너무 많으면 1번 서버의 session에 로그인했는데 2번 서버에 접속해서 로그인이 끊기게되는 경우가 있다 서버가 늘어나면 서버들끼리 로그인 공유가 힘들어진다. 그래서 회원의 정보를 갖고 있는 주체를 클라로 바꾸면서 jwt 토큰을 사용하게 된것. 필요에 의해서 서버를 추가하기도 한다. - session에 대한 문제가 발생 - 로그인이 완료되서 그 정보를 들고 있는 사람을 client 쪽에 넣게 되면 어떨까 해서 나오게 된게 토큰이다 - 토큰 : 임의대로 지정해 놓은 값 - 토큰 저장을 브라우저에 시킨다 브..