본문 바로가기

Youtube Clone/User Authentication

My profile and User Detail

  • 내 프로필을 볼 때와 다른 사람 프로필을 볼 때 페이지 호출 과정을 구분하자.
  • routes.js에 const ME = "/me";와 me: ME,를 추가해준다.
  • 프로필을 누르면 사진과 이름이 나오도록 userDetail.pug을 수정한다.

userDetail.pug

  • 로그인한 상태에서는 Profile 버튼을 누르면 routes.me(/users/me)로 이동한다.

partials/header.pug

userRouter에 userRouter.get(routes.me, getMe);를 추가해서 me 주소로 접근시도가 있을 때 getMe함수를 호출한다. 

getMe 함수는 userDetail.pug를 불러오고, request object의 user 정보를 전달한다. 

userController.js

  • 일반적인 아이디로 호출할 경우(/users/id)는 아래와 같이 userDetail 함수를 호출한다. 
    • request object에서 id를 알아낸 뒤 그에 맞는 유저의 프로필 페이지를 불러온다. 
  • 이때 userRouter에서 routes.me가 routes.userDetail()보다 위에 있어야 한다.
    • 만약 routes.userDetail()이 우선 실행되면 /users/me에서 me를 id로 인식해 userDetail 함수를 호출한다.
    • 미들웨어는 위에서부터 차례대로 실행되기 때문에 순서를 조심해야 한다.

userController.js

'Youtube Clone > User Authentication' 카테고리의 다른 글

Kakao Login  (0) 2019.09.23
onlyPublic, onlyPrivate  (0) 2019.09.23
MongoStore  (0) 2019.09.23
Passport  (0) 2019.09.23