1. “/boards” + {id}


2. `/boards/${id}`

path variable은 useParams
쿼리 스트링은 useSearchParams 로 딴다! → 6번 글 참고!
1. 쿼리 스트링 따기





sub를 해야 바인딩 돼서

flutter에서는 family로 id 땡겼는데 react에선 useParams를 쓰면 됨 근데 flutter에서도 hooks_riverpod을 쓰면 가능. redux hooks여서 flutter에서도 hooks_riverpod이라고 하나봄



수정 삭제 버튼 내 글일때만 보이도록
store.js에 있는 값을 들고 와야됨
토큰 들고와서 서버에 요청해야됨
useSelector로 땡길수 잇음
나중에는 aop처럼 자동화 가능



서버를 stateless로 설정해도 jsessionId를 무조건 만들어서 지금 문제가 생김
게시글 상세보기는 로그인이 안되어도 들어와야 하는데
interceptor 동작 안하고 토큰 검증을 안함
토큰 검증은 근데 무조건 해야됨
토큰이 있으면 세션에 넣어주고 없으면 아무것도 안해
들어오고 나서 여러 주소로 갈 수 있는데 api 주소로 갔을때 세션이 있으면 가능 없으면 x
근데 상세보기로 갈 때는 loginInterceptor 동작하면 안됨 →
jsessionId를 응답해줌
내가 로그인을 하면 유저객체가 사물함에 쌓임 ㅋ그리고 키를 가지고 집에 옴
브라우저의 쿠키에 키가 담김
인증이 안필요한 페이지로 갈때도 키를 가지고 감
인증이 안필요한 상세페이지에서 intercpetor 안타고 session 안타는데 키는 있고 jsessionId 돌려주지마! 세팅
로그인 - 세션 정보 들어감 - 토큰 돌려줌 - jsessionId는 안돌려줌 - 토큰을 들고 인증 필요한 페이지 들어감 - http session 객체를 만지는 순간 비활성화 취소되고 jsessionId를 만들어서 응답해줌 - 이래서 문제
방법 2개
- 사물함 날려버릭
- 사물함 안쓰기
- 토큰 들고 서버 들어오면 한번 검증은 해야됨 - 필터에서 - 세션에 담아두고 쓰면 편하니까 - 근데 request 객체에 원래 여기에 넣어야(msa 기업에서는 request에서함) - ~~이므로 request에 넣으면 됨!
- aop로 요청응답시 session invalidate 호출
토큰은 일단 무조건 검증해야됨
interceptor에서 req 또는 session에 있는거 검증하면 됨
filter는 호텔 출입구 문지기 interceptor는 방마다 있는 문지기?
이제 세션에 안넣고 토큰 있으면 검증하고 request 가방에 담음 문앞에서 한 번 더 검증받음
interceptor만으로는 안됨
request는 ioc에 들어가는게 아니므로 계속 꺼내서 써야됨
security 쓰면 authorize principal 쓰면 됨

게시글 삭제


수정
네비게이터를 안만들고 객체를 그대로 들고가도됨
이거는 해당 페이지로 가서 통신한다는 것

객체를 들고가도 됨 → 이건 직접 해보기
store에 board 담아두고 써도 됨!
그냥 통신해서 무조건 받아오는 지금 방식이 기본인 것 뿐

/api/boards/{id}/detail → 게시글 상세보기 (댓글 포함
/api/boards/{id} → 순수 게시글 내용만 있는 dto 만 보이는 것도 있으면 좋음 (게시글 수정 같은거 할때)





글자 적으면 onChangedEvent로 기존의 상태 변경
flutter의 copyWith 같은 것 이게 더 편하긴함


title, content만 상태에 넣는걸로 변경하자

Share article