인프런 커뮤니티 질문&답변

홍준혁님의 프로필 이미지
홍준혁

작성한 질문수

Slack 클론 코딩[실시간 채팅 with React]

워크스페이스 만들기 + 로그아웃하기

로그인 & 회원가입 관련해서 질문드립니다.

해결된 질문

작성

·

636

0

 로그아웃을 하는 작업은 cookie의 값을 지우면 로그아웃이 된다고 하셨는데, 백엔드에 logout요청을 보내는 이유가 무엇인가요? 

그리고 로그인 했을때 쿠키에 저장되는 방식은 어떤식으로 흘러가는 것인지 잘 이해가 가지 않습니다!

저는 로그인할때 서버에 로그인 요청을 하면 서버에서 토큰을 줘서 그 토큰을 프론트엔드 단에서 쿠키에 저장하는 방식을 사용했었는데 그 방식과는 다른 방식인가요?

답변 2

0

홍준혁님의 프로필 이미지
홍준혁
질문자

아! 대충 로그인/로그아웃 하는 방식에 대해서는 이해한것 같습니다.

그러면 외람된 질문이지만, Next js를 사용하면 withCredentials같이 자동으로 브라우저 쿠키에 저장하는 방식을 사용할 수가 있나요? 


최근에 Next+Redux로 프로젝트를 진행하고 있는데 SSR에서 로그인하는 절차에서 token을 어떤식으로 저장하고 로그인을 유지시키는지 모르겠어서 질문드립니다.   

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

withCredentials는 axios쪽 설정에서 쓰시면 됩니다. 제 강좌에서 axios에 withCredentials를 넣습니다. 

토큰을 쓰신다고 하시면 세션이 아니라 토큰 방식으로 로그인하시는 건가요? 토큰은 로컬스토리지나 쿠키에 저장해서 쓰시면 됩니다. 쿠키는 자동으로 서버로 전달될 것이고, 로컬스토리지에 넣었다면 매번 꺼내서 같이 보내셔야 할 것이고요.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

프론트단에서 쿠키에 저장하셨다면 document.cookie를 사용하셨다는 말씀이신가요? 이는 매우 보안에 취약합니다.

로그인을 할 때 서버에서 쿠키를 발급하고, httpOnly를 써서 브라우저가 알아서 쿠키를 저장하게 해야 합니다. httpOnly를 사용한다면 브라우저나 서버만이 쿠키를 저장하고 지울 수 있으므로 로그아웃할 때도 logout 요청을 보내야 합니다.

홍준혁님의 프로필 이미지
홍준혁

작성한 질문수

질문하기