목록웹 개발 (225)
dukDukz

여러 서버에서 client의 로그인 값을 가질 수 있도록 하려고 jwt (토큰) 을 사용하는 것이다. client가 너무 많아서 서버 한대로 돌리기가 어려운 경우, 서버를 여러대 돌리게 된다. 사용자가 너무 많으면 1번 서버의 session에 로그인했는데 2번 서버에 접속해서 로그인이 끊기게되는 경우가 있다 서버가 늘어나면 서버들끼리 로그인 공유가 힘들어진다. 그래서 회원의 정보를 갖고 있는 주체를 클라로 바꾸면서 jwt 토큰을 사용하게 된것. 필요에 의해서 서버를 추가하기도 한다. - session에 대한 문제가 발생 - 로그인이 완료되서 그 정보를 들고 있는 사람을 client 쪽에 넣게 되면 어떨까 해서 나오게 된게 토큰이다 - 토큰 : 임의대로 지정해 놓은 값 - 토큰 저장을 브라우저에 시킨다 브..

카카오 개발자 페이지에서 지도/로컬 API를 가져와서 활용해보자 더보기 카카오 개발자 페이지에서 도구 - REST API 테스트 query에 값을 넣어서 검색해보자 이러한 결과 값이 나온다. 요청 코드를 참고하여 직접 요청해보기로 하자 + 내 API key 값이 필요하다. 이 부분을 활용하면 된다. 요청해보자! 중요한 부분! 이 문서를 보고 API 요청을 할 줄 알아야 한다. server.js /* express nunjucks url : / index.html 로 render */ const express = require('express') const app = express(); const nunjucks = require('nunjucks') app.set('view engine','html') ..

코드 더보기 server.js const express = require('express'); const nunjucks = require('nunjucks'); const bodyParser = require('body-parser'); const app = express(); app.use(bodyParser.urlencoded({extended:false})); app.set('view engine','html'); nunjucks.configure('views',{ express:app, }); app.get('/',(req,res)=>{ res.render('index'); }); app.get('/login',(req,res)=>{ console.log(req.headers); let {use..
index.html {% if logininfo == undefined %} 로그인 카카오로그인 {% else %} 회원정보 로그아웃 {% endif %} {% if msg %} {% endif %} server.js localhost:3000 main - 여기서 logininfo 값을 index.html 에 보내준다. 더보기 app.get('/',(req,res)=>{ const {msg} = req.query; //console.log(req.session.authData); res.render('./index.html',{ msg, logininfo : req.session.authData, // kakao든 local이든 로그인이 되면 두번 로그인 할 수 없게 처리하기 위해서 값을 보내준다 });..

1. index.html html에 이러한 링크를 만들고 2. server.js 라우터에 get 부분으로 이 링크를 받아주는 부분을 만든다. app.get('/auth/kakao/unlink', authMiddleware, async (req,res)=>{ const {session} = req; const {access_token} = session.authData.kakao; // 요청 - axios 비동기로 요청하기 (async 필요) // 카카오에게 접속을 종료하겠다는 것을 요청하겠다 - 그걸 unlink에 담는다 // 요청 실패시를 대비해서 try catch 문을 사용했다. let unlink; try { unlink = await axios({ //Promise 객체를 unlink에 넘겨주고 ..

1. 로그인 체크 미들웨어 // 아이디 체크를 위한 미들웨어 사용 (반복 사용가능) const authMiddleware = (req,res,next) => { const {session} = req; if(session.authData == undefined){ console.log('로그인이 안됨'); res.redirect('/?msg=로그인 안되어있음') } else{ console.log('로그인 되어있음'); next(); } } 현 로그인 상태를 처리하는 미들웨어를 만들어주었다. 2. msg 처리하는 부분 server.js app.get('/',(req,res)=>{ const {msg} = req.query; res.render('./index.html',{ msg }); }); index..

1. if 문을 쓰는 경우 let gender = "여자"; // 남자 or 여자 // 남자일 경우 숫자 1을 출력, 여자일 경우 숫자 2를 출력 if(gender == "남자"){ console.log(1); }else if(gender == "여자"){ console.log(2); } 2. switch 문 - 가독성이 좋다. (기능차이는 없음) let gender = "여자"; // if 문에서 == 만 활용할때 같다 표현이 복수 일때 switch(gender){ case "남자" : console.log(1); break; case "여자" : console.log(2); break; } * case가 겹치는 경우 - - switch 문을 사용하는것이 좋다. let 과일 = "배"; switch(과..

비구조 할당문은 원본값이 바뀌더라도 처음에 복사할 때, 그 시점의 값을 쓰고 싶을때 사용하면 좋다. (깊은 복사) 예시 ① [배열] 비구조 할당문 사용하지 않고 배열에 있는 값을 새로운 변수에 담을 때 // 방법 1 - 이건 비구조 할당문이 아님 let arr = [1,2,3,4,5,6,7,8,9]; let a = arr[0]; let b = arr[1]; let c = arr[2]; 비구조 할당문을 사용해 배열에 있는 값을 새로운 변수에 담을 때 let arr = [1,2,3,4,5,6,7,8,9]; let [a,b,c, ...last] = arr; console.log(a); // 1 console.log(b); // 2 console.log(c); // 3 console.log(last); // 나..