https://docs.github.com/en/developers/apps/building-oauth-apps/authorizing-oauth-apps깃헙 로그인을 사용해보려고 한다. 깃헙 로그인은 꽤 특이한 편이다. 사이트를 보면 몇몇 parameter들이
이번 파트에서 살펴 볼것은 scope이다. scope은 유저에게서 얼마나 많이 정보를 읽어내고 어떤 정보를 가져올 것에 대한거다.그러니 당연히 필요한 정보만 요청 하도록 해야 한다.https://docs.github.com/en/developers/apps/b
2\. Users are redirected back to your site by GitHubhttps://docs.github.com/en/developers/apps/building-oauth-apps/authorizing-oauth-apps지금 현재 프로
fetch가 필요한데 fetch는 서버엔 없고 브라우저에만 존재한다.사람들은 node-fetch라는 패키지를 만들었다. https://www.npmjs.com/package/node-fetchnpm i node-fetch 설치해 보도록 한다.현재 에러로 통해
저번 파트에서 뭘했는지 살펴 보기로 한다.Github가 준 코드를 가지고 access_token으로 교환을 했다.access_token은 Github API URL을 fetch하는데 사용 되었다.그랬더니 얻은 건 user의 public정보였다. 이건 scope로 요청했
이제 스스로에게 물어본다(?)"로그인 규칙을 어떻게 만들것인가?" 예를 들어, 데이터베이스에user가 하나 있는데 이 user는 이런 email을 가지고 있다.이미 해당 email로 계정도 있고 password도 있다. 즉 이 user는 username과 passowo
깃헙 프로필의 email이 데이터베이스에 있을때 유저가 로그인할 수 있게 해주었다.그 말이 즉슨 Github가 주는 user의 email을 쓰겠다는거다.primary이면서 verified된 email을 찾는다는 거다.만일 찾았을 경우에 그 email을 데이터베이스에서
이전까지 한 모든 것들은 Github로 로그인을 하기 위함이었다.링크를 누르면 온갖 기능들이 실행된다. http://localhost:4000/users/github/start알다시피 이링크는 users/github/start로 가고 있다.그건 현재 만든 us
Edit Profile 페이지를 만들어 본다.이 페이지를 만들면서 많은 걸 배우게 될거다. 프로필을 바꾸고, form을 사용하는 연습은 물론이고유저한테 있었으면 하는 아바타 같은 파일도 업로드 해볼거다.지금은 깃허브로 로그인 해야지만 아바타가 있다.그래서 웹사이트에서
현재 원하는건 로그인 하지 않은 사람들이 해당 페이지에 가는걸 막는 일이다. 그걸 위해서 Protector Middlewares 를 만드는 거다. middlewares.js에서 middleware뿐만 아니라 모든 것에 req,res,next가 포함되어 있다는 걸 명심
middleware를 videoController에 추가 해본다.그래서 videoRouter의 /edit,/delete, /upload를 보호 할거다.로그인 돼 있어야만 접근할수 있게 만든다.이렇게 하는 이유는 나중에 video model과 user mogel을 연결하
DB에서의 업데이트가 프론트엔드에 반영되지 않았다.프론트엔드는 session으로부터 정보를 얻기 때문이다. session은 로그인 할때 한번만 작성되고 있다. 로그인 하고 나서는 session이 아무것도 안하기 때문이다. 로그인 했을때의 user가 그대로 남아 있는거다
비밀번호 변경으로 넘어가 본다.그 페이지도 만들어 보고 user profile을 깔끔하게 만들어 본다.이 다음에는 아바타를 변경하는것도 해본다. edit-profile.pug에서 change-password로 가는 링크를 추가해주었다. 보다시피 URL이 아니라 상대 U
먼저 mongo로 가서 데이터를 삭제 해 주었다.use wetube를 커맨드 입력해주고 db.sessions,db.users에서 remove({}) 해주면 된다.그리고 계정을 하나 만들어 본다. 다른건 다 작동하나 비밀번호 수정은 아직 안된다.그전에 새로운 middel
파일을 업로드 하는 방법을 알아 본다. 업로드 하려면 먼저 로그인이 돼 있어야 할수 있게 한다.
controller를 마무리 해본다.이제 req.file이 생겼고, 경로를 얻어야 한다.userController.js에서req에서 file:{ path}를 꺼내준다. 그리고 path를 findByIdAndUpdate에 보낸다.avatarUrl:path를 입력해준다.
현재 브라우저가 uploads폴더에 있는 내용을 볼수 있게 해야한다.브라우저가 서버에 있는 파일에 접근할수 없으니까 그렇다. 브라우저한테 어디로 가야 하는지 얘기해줘야 한다.그리고 브라우저가 서버의 어떤 폴더로든 갈수 있는건 보안상 좋지 않다.그래서 브라우저가 어떤 페
샘플로 쓸 영상을 하나 다운로드 해놨다.https://sample-videos.com/여기서 쉽게 구할수 있다. 실험할 용량과 형식에 맞게 구할 수 있다.이제 video를 업로드 할 거다. video에는 파일이 필요하다.먼저 views폴더의 upload.pug
이번에는 사용자 프로필 창을 만들어 본다.왜냐하면 모든 사용자한테 프로필이 필요하기 때문이다. 그래서 모두가 부여 받는 사용자 프로필 창을 만들어 줄거다.이 과정에서 많은 것들을 배우게 될거다. 예를 들어 relationships같은 것들이 있다. 사용자의 프로필 창에