일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- template
- 모듈
- local
- Web2
- tPerRow hn측
- app.js
- round
- Web
- lowdb
- node.js
- 실행
- 설치
- express
- 데이터
- /bin/www
- 함수
- nodemon
- 객체란
- sanitize
- 객체
- Generator
- JavaScript
- dr 학교측
- nodejs
- passport
- math
- 객체정의
- Passport.js
- 생활코딩
- 자동
- Today
- Total
괜찮아 잘하고있어 힘내
9. 접근제어 - 글 수정 본문
로그인을 하고 페이지를 수정하려고 update를 클릭하면
주소가 update/제목 이 뜨게된다.
이 부분을 수정해줘야한다.
topic.js에 /:pageId 부분을 보면
127) update링크 버튼부분인데 넘어가는 주소를 topic.id로 수정해준다.
해당 페이지의 id값이 주소로 만들어진다.
--------------------------------------------------------------------------------------------------------------
파일 기준으로 읽어오는것이기 때문에 원하는 값이 나오지 않는다.
이부분을 수정해준다.
update 라우터 내용 중
동그라미친 영역을 지워준다.
파일에서 가져오는게 아니라 lowdb를 이용해 db.json에서 읽어올것이다.
58) topics테이블에 접근해서 id값이 request.params.pageId인 값을 출력해 topic 변수에 담는다.
즉, 현재 페이지의 주소의 값을 가지고 id값을 조회하는것이다.
66) 수정할 페이지가 어떤것인지를 hidden속성으로 넘겨줘야하기 때문에 해당 페이지의 id값을 넘겨준다.
76) update링크 버튼을 클릭하면 다시 해당 수정페이로 돌아가야하기때문에 그 페이지의 id값이 들어가야한다.
76) update?id= 에서 ?id를 빼준다.
--------------------------------------------------------------------------------------------------------------------
91) topics 테이블에 접근해 id값이 hidden값으로 넘어온 id값과 같은 데이터를 출력해 topic 변수에 담는다.
92) 넘어온 topic 데이터를 출력해본다.
93) 일단 끝을 내야하기 때문에 페이지에 hi를 띄워주고 끝낸다.
94~97) 파일에 수정하는 내용을 주석처리해준다.
다시 실행시키고 로그인해서 수정을 해보면
topic이 출력된다.
93) topic.user_id와 request.user.id가 같지 않다면
즉, 수정할 페이지의 정보(topic)중에 user_id값(페이지를 만든 사용자의 id)과 로그인한 사용자의 id값을 비교해서
같지 않을때 조건문 실행
94) 같지 않다면 flash를 사용해 Not yours! 라는 문구 화면에 출력
95) 그리고 홈으로 리다이렉션, 여기서 끝내기 위해 return을 사용.
94) flash에 'error'를 추가해준다.
※ 그래도 flash가 작동되지 않는다. 강의에서도 작동하지 않는다. 수정 필요.
93~96) 페이지 사용자id값과 로그인한 현재 사용자의 id값이 같지 않다면
조건문이 실행돼서 바로 홈으로 돌아갈것이다.
그런데 같다면 조건문이 실행되지 않고 바로 다음 줄인 97번부터 실행될것이다.
97) topics테이블에 접근해 id값이 hidden값으로넘어온 페이지 id값과 같은 데이터를 찾고,
assign을 사용해 데이터를 수정한다.
title을 우리가 입력한 값을 넘겨받은 title값으로 바꾸고
description값을 우리가 입력한 값을 넘겨받은 description값으로 바꿔준다.
101) 데이터 수정이 끝나면 해당 페이지로 다시 리다이렉션 시켜준다.
해당 페이지는 /topic/해당하는 페이지의 id값으로 접근한다.
수정된다.
이부분을 복사해서
/update/:pageId 영역에서
topic 밑에 붙여넣어준다.
권한을 검사해서 해당하는 id가 아니라면 튕겨나가게 하는것이다.
'웹 개발 > Multi User on Passport' 카테고리의 다른 글
10. 접근제어 - 삭제 (0) | 2021.04.11 |
---|---|
8. 글 목록 lowdb로 전환 (0) | 2021.04.09 |
7. 접근제어 글쓰기 (0) | 2021.04.08 |
6. 로그인 기능 구현 (0) | 2021.04.07 |
5. 세션 스토어에 저장 (0) | 2021.04.06 |