일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 리액트
- MongoDB
- API
- 자바스크립트
- frontend
- javscript
- TypeScript
- clonecoding
- heroku
- HTML
- Component
- form
- node.js
- CSS
- backend
- Session
- graphQL
- nodejs
- JavaScript
- express
- CLONE
- GRID
- Flutter
- pug
- react
- Mongoose
- DART
- ECMAScript
- ES6
- NextJs
- Today
- Total
목록JavaScript/Node.JS (79)
Enjoy Programming
음.. 유튭 클론코딩을 진행하면서 한가지 자꾸 거슬리는 부분이 있는데 multer를 통해 비디오를 db로 업로드 하면 지정한 path에 변환된 fileUrl이 저장되어있다. 문제는 delete키를 눌러 파일을 db에서 삭제를 해도 내 컴퓨터의 path에는 그대로 fileUrl이 저장 되어 있고 삭제가 되지 않았다. 그냥 지우고 싶었다.. ㅎㅎㅎ 그래서 이것 저것 해보던 중 Node.js에서 파일 삭제를 할때 fs모듈(파일시스템)을 이용해 삭제하는 것을 생각했고 deleteVideo 컨트롤러에서 삭제를 진행했다. 우선 fs모듈을 설치: npm install fs 그리고 videoController에 fs를 임포트 해주고 : const fs = require("fs"); 삭제 컨트롤러에서 filePath를..
페이스북 소셜 로그인 연동을 할 차례인데 꽤 어렵다고 한다 먼저 developer.facebook.com으로 들어가서 애플리케이션 등록을 해야한다 난 facebook아이디가 없다.. 먼저 만들어주고 developer사이트로 가서 로그인 해주고 새앱 만들기를 진행했다. 이 화면에서 그냥 일단 잘 모르지만 로그인 권한이 적혀있어서 소비자로 만들어 줬다. 그리고 facebook 로그인 설정을 선택하고 계속 계속~ 그리고 이런 화면이 뜨는데 웹으로 선택하고 사이트 url 적어주고~ 뒤에 나오는 내용은 현재 필요 없으므로 전부 무시하고 완료해주자.. 완료버튼이 없다..ㅡㅡ;; 그리고 설정에서 기본설정으로 이동하면 앱 ID와 시크릿ID가 보인다... 이것들을 복사해주자 깃헙 연동할때 처럼 .env에 환경변수 설정을..
유저 프로필 페이지를 수정을 해줄 건데 약간의 수정사항과 추가사항이 있다. 일단 로그인한 유저의 프로필 페이지로 이동을 하면 기존에는 /:id 를 이용해서 갔는데 userDetail 컨트롤러를 이용해서 id값을 찾아 이동을 했다. 사용자마다 똑같은 user template을 이용하는데 이부분을 바꾼다. 그래서 사용자 프로필 페이지 routes와 컨트롤러를 하나 더만들어준다 헤더 템플릿으로 가서 경로도 다시 설정 해주자 기존 userDetail과 같은 기능을 하지만 다른점은 userDetail은 사용자를 찾는 과정이 필요한데 새로 만든 getMe user를 지금 로그인한 유저인 req.user로 전달한다. 햔재 userDetail은 제 역할을 못하기에 프로필 페이지 접속후 :id부분의 url을 임의로 바꿔..
사용자 정의 인증방식과 깃헙strategy 방식 두가지를 했다. 사용자 정의 인증방식(passport-local)은 username과 passport를 post방식으로 전달하고 passport-local-mongoose 플러그인을 통해 자동으로 체크해준다. 만약 password가 일치하면 passport가 쿠키를 자동으로 생성한다 passport-github strategy는 먼저 사용자를 깃헙 페이지로 보내고 깃헙에서 권한 승인을 하고 이후 깃헙은 요청한 웹에 인증정보를 전송하고 내가 설정한 callback url로 오게 된다. 이때 passport가 내가 만들어놓은 콜백함수를 호출한다 이콜백 함수는 토큰과 프로필 cb를 받게되고 프로필의 이메일 값을 db의 유저들중 같은 이메일이 있는지 확인하고 있으..
앞서 인증 정보를 받았을때 토큰과 프로필 cb가 있었는데 토큰은 신경안쓰고 githubId & email & name & avartar 이것들이 중요한 정보이다. 현재 _json형태로 담겨있고 그안에서 정보를 추출하자 cb는 무엇인가 - cb는 passport에서 제공된 callback함수이다. 그리고 passport에서 이 callback 함수는 인증이 성공했을 때 호출이 된다. 이때 두가지 옵션이 있는데 한가지는 cb를 호출 할 때 에러 없이, user를 넣어주는 것, 에러가 없다고 하고 user object를 넣고 함수를 호출 하면 passport는 user ID를 쿠키에 넣어주고 사용자 인증방식으로 인증할 때와 똑같은 process가 진행된다. 만약 user object 없이 에러만 넣어서 cb를..
아 잠을 못자서 그런가 키보드 타이핑이 잘 안된다. ㅡㅡ;; 이제 소셜 로그인에 대해서 다뤄보자 passport site에 가서 strategy중 github을 살펴보자 (이제 감이 온다 strategy는 전략이다 passport가 만들어놓은.. local일지 github일지 인스타그램일지 어떤 사이트일지 모르지만 각 passport에서 각사이트마다 인증 전략을 새워놓은 것이다.) 우선 npm install passport-github으로 설치를 한다. 음 이모듈은 깃헙을 이용해서 너의 node.js 앱의 인증을한다. passport 에 견결해서 깃헙 인증은 express를 포함한~~~어쩌고 자 다음 섹션을 보면 passport-github을 이용하기 전에 깃헙에 앱을 등록해야 한다~ 깃헙에서 setti..