현재 프론트는 리엑트고
백엔드는 express 서버로 혼자 해보고있는데 좀 헷갈리는 부분이 있습니다.
보통 로그인 시도하면 백단에서 "필요하다면" 유저 아이디와 필요한 것들을 저장한뒤
프론트엔드로 쏴주고 메인홈으로 이동하는데
헷갈리는 부분이 이제 생깁니다.
로그인 완료후 리액트에서 백단에서 받은 유저의 정보를 로컬스토리지나, 쿠키탭이나 뭐 어딘가에 저장하고
개인정보 페이지나, 게시글 삭제에서
유저 아이디를 계속 끌고 다닐텐데
인터넷 코드를 좀 참조하려고 보니 아래 사진처럼
if(req.sessionID!=null) 또는 if(req.session.userId==false)
이런식으로 세션 아이디를 그냥 널여부나, 불린 값으로만 처리 하던데
이러면 발급한 세션아이디를 유효한지 검증 하는게 아닌...그냥 널여부로만 통과 시키는거 같은데
제가 사용한 express-session 라이브러리 아무리 검색을 해보아도 발급한 세션 아이디 유효성검증 관련 키워드를 못찾고 있습니다..
도움부탁드립니다..
-질문요약-
로그인완료후 백단서버에서 세션 객체를 만들고 저장 그리고
리액트 쪽에 세션아이디와 필요한 정보를 쿠키탭에 저장시킴.
이제 마이페이지나, 나의 게시글 삭제등 할때 해당 유저만 가능해야하니
세션 아이디의 존재성+유효성 까지 확인하는 법을 알 고싶습니다.
백엔드에서 겟세션하고 세션에 저장된 정보로 검증 끝
세션 개념부터 정확히 알아야할듯 - dc App
저도 개념이 부족한거 같은데.. 좀 헷갈려요 익스프레스 세션 에선, 세션이 sessionID 하고 쿠키 가 DB에 저장 되는 형태이고 프론트=리엑트 쪽에선 sessionID가 저장되는 형태입니다..
클라이언트가 그러면 글 작성이나, 물건 구매나 등 할시 헤더에 sessionID를 담아서 보내야 할텐데 제말은.. 그저 널여부로 안전하냐는 것입니다..
헤더에 세션아이디를 넣는다고?? 쿠키에 안넣는 이유가 뭐임? - dc App
아 죄송합니다 제가 용어를 잘모말했습니다. 헤더가 아니라 쿠키입니다. 정정합니다.
널체크만 해도 되는 이유는 어처피 세션정보가지고 서버에서 검증하니까 클라이언트에서 널체크만 하는거야 그리고 세션 값 자체도 예측 불가능한 값을 쓰기때문에 그런거고 - dc App
개발자도구의 쿠키 탭 그거 입니다.!
네가 세션에 사용자의 기본키를 넣는 ㅂㅅ짓거리만 안했다는 가정하에 말하는거 - dc App
음 그리고 이렇게 생각해봐라 세션을 사용자에서 검증한다면 어떻게 해야할지 랜덤 문자열처럼 들어가 있을텐데 이걸가지고 뭘해야하는지 이러면 이해될꺼다 - dc App
생각정리가 되었네용 감사합니다ㅎㅎ
한가지 더 물어보고 싶습니다.. 만약 세션아이디가 어떠한 이유에서 도난당했다는가정하에 세션에다가 요청자의 아이피를 넣는다면 방지에 도움이 될수있을까요??
A가 로그인후 세션아이디 발급받고 또한 세션에 아이피 저장 B가 탈취후 요청시 아이피가 다르니 방어가 될까해서요..
대가리 뜨거워질라 그러네 - dc App
그럼 탈취한 사람이 탈취당한 사람의 Ip주소를 알게되는데 그렇게 하면 될까요 안될까요? - dc App
내가볼땐 세션할때가 아니다.. 쿠키가 뭔지부터 알고 구현해라.. 서버에 요청보낼때 쿠키가 어떻게 동작하는지 - dc App