일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- crud
- 채팅
- socket io
- dict
- NeXT
- 카톡
- merge
- EC2
- docker
- RDS
- Vue
- MongoDB
- node
- wetube
- 파이썬
- flask
- react
- pandas
- async
- TypeScript
- Class
- AWS
- lambda
- git
- SSA
- S3
- 튜플
- 중급파이썬
- Props
- SAA
- Today
- Total
목록전체 글 (420)
초보 개발자
우리가 로그인이 되어있지 않은 상태로 로그아웃을 하거나 반대로 로그인 되어 있는 상태로 또 다시 로그인을 한다면 안될 것이다. 이런 경우에 middleware를 사용하여 사전에 차단할 수 있다. 로그인 되어있는 상태일때만 접근 할 수 있는 forLoggedUser와 로그인 되어있지 않은 상태일때만 접근 할 수 있는 forPublic 이 두개의 middleware를 만들었다. 사용법은 간단하다. handler앞에 적어주기만 하면 끝이다. route()를 통해 get,post메서드를 같이 받고 있는 상태라면 all()을 사용해 한번에 처리할 수도 있다. 다음으로 user edit handler를 만들어 보도록 하겠다. 먼저 router와 handler, 그리고 pug가 필요하다 이렇게 퍼그를 해두고 logg..
2021.09.27 - [RECAP - WETUBE] - Github Login - oAuth Github Login - oAuth 2021.09.27 - [이것 저것] - OAUTH OAUTH WEB2 - OAuth 2.0 : 1.수업소개 - YouTube 모든 내용은 생활 코딩님의 OAUTH강의를 바탕으로 만들어졌습니다. 3가지의 주체가 있다고 가정해봅시다. 우리를 Cli.. taehyeki.tistory.com 이전에 포스팅 한 글이있습니다. 못보신 분들은 한번 보고와주세요 !! 우리가 적어둔 redirect URL 뒤에 code가 하나 딸려온 것을 알 수 있는데요이건 authorization code이라고 합니다. 1. code 2. client_id 3. client_secret 를 모..
2021.09.27 - [이것 저것] - OAUTH OAUTH WEB2 - OAuth 2.0 : 1.수업소개 - YouTube 모든 내용은 생활 코딩님의 OAUTH강의를 바탕으로 만들어졌습니다. 3가지의 주체가 있다고 가정해봅시다. 우리를 Client라고하고 우리의 서비스를 사용 taehyeki.tistory.com oAuth의 인증절차에 대해서 다뤄봤던 글이 있다. 생활코딩님이 설명해주신 내용을 바탕으로 정리해두었다. 이 글을 먼저 보고오면 어떤 원리로 인증이 되는지 알 수 있을 것이다. GitHub Apps GitHub: Where the world builds software GitHub is where over 65 million developers shape the future of s..
WEB2 - OAuth 2.0 : 1.수업소개 - YouTube 모든 내용은 생활 코딩님의 OAUTH강의를 바탕으로 만들어졌습니다. 3가지의 주체가 있다고 가정해봅시다. 우리(서버)를 Client라고하고 우리의 서비스를 사용하는 사람(사람)을 Resource Owner 그 정보를 가지고 있는 다른 사이트(카카오,google..)를 Resource Server라고 합시다. Authorization Server라는 것도 있지만 편의상 합쳐서 Resource Server만 사용하기로 한다. client가 리소스 서버를 이용하기 위해서는 리소스 서버의 승인을 사전에 받아놓아야한다. 나는 깃허브를 사용해보려고 한다. New OAuth Application (github.com) GitHub: Where ..
session data가 쿠키안에 저장되지 않는다. session id만 저장되고 session data는 서버쪽에 저장된다. 즉 우리는 session id는 쿠키에 저장하지만, 데이터 자체는 서버에 저장된다. default session storage는 MemoryStore이고 실제 사용하기 위해서 있는건아니다. 따라서우리는 세션을 DB에 저장해야한다. connect-mongo는 세션을 mongoDB에 저장한다. 그래서 만약 우리가 서버를 재시작하더라도 세션은 database에 저장되더 있기 때문에 누군가 로그인 되어있어도 잊어버리지 않을 것이다. (현재는 세션을 메모리에 저장해놓기 때문에 서버가 재시작 하면 메모리가 사라져버린다) npm i connect-mongo session 미들웨어에서 opti..
먼저 join handler를 만들어 보겠다. 여기서 새로운 Model인 User모델을 만들고 bcrypt를 활용해 비밀번호를 해시하여 암호화 시킬 것이다. getJoin getJoin을 통하여 /join url로 들어왔을 때 join.pug를 보여주도록 한다. join.pug form을 만들고 그 안에 id를 뜻하는 iden와 password, email, name 등을 post방식으로 보낼 것이다. postJoin req.body로 먼저 정보들을 받아온 뒤에 iden, email이 기존의 것과 중복이 되는 지의 여부를 확인하고 중복이 된다면 status(400) (bad request)를 보내준다. 안보내면 아이디와 비밀번호를 저장할 것인지를 브라우저가 물어보는데 이것은 자동적으로 status(200..
delete는 정말 간단하다. findByIdAndDelete를 써주기만하면 된다. 먼저 Router와 handler를 추가하자. 이걸로 끝이다 얼마나 간단한가!!! 다음은 search인데 여기서는 정규식을 통해 찾아보도록 하자. 먼저 Router와 handler를 추가하자. let으로 videos = [] 이라는 빈 배열을 만들고 keyword가 있다면 ( input에 title을 검색 했다면 ) videos를 갱신해주자 !!! 여기서 query에서 정규식을 쓰기 위해서는 $regex라는 연산자를 써야한다. regular expression의 약자이다. title : { $regex : new RegExp(keyword, "i") i는 대소문자 구별X 만약 let으로 바깥에다가 선언을 하지 않고 if문..
watch pug를 만들어 우리가 제목을 클릭하면 그 내용을 볼 수 있도록 만들어 줍니다. render에서 video라는 객체를 보내주어 title, description, createAt을 나타내줍니다. 자 그럼 handler로 넘어가볼까요? id를 params를 통해 가져오고 await Video.findById(id)를 하여 딱 맞는 데이터를 가져옵니다. 공식 문서에는 Video.findById(id).exec(); 뒤에 exec를 붙이라고 나와있는데 딱히 붙이지 않아도 상관은 없다. 붙이면 어떻게 될까? promise객체를 반환한다. 근데 ?? await을 쓸려면 Promise를 대상으로만 작동이 되기에 Promise이어야 합니다 예를들어 setTimeout은 Promise반환을 하지 않기 때문에..