강의

멘토링

로드맵

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

zeler1004님의 프로필 이미지
zeler1004

작성한 질문수

node.js 와 express를 활용하고 jwt(jsonWebToken)을 이용한 로그아웃 방식

작성

·

537

1

안녕하세요.

인프랩에서 첫 질문이 될 내용입니다 ^^;;

초보 코린이 입니다!

저는 백엔드쪽으로 하고 있어서 백엔드에 관련된 질문을 하고자 합니다!

현재 javascript로 node.js와 express를 활용하여 클론코딩을 해보고있는데요.

jwt(jsonWebToken)을 이용하여 로그아웃 기능을 백엔드 관점에서 해야 할 작업이 있는지 궁금합니다.

로그인을 할때 토큰을 발행해주고 그 토큰에는 만료기간(시간)을 설정해 놓았습니다.

그렇다면 로그아웃을 위해서는 토큰이 만료되기 전까지는 로그인에 대한 유효가 가능할텐데 이럴때 생각해보면

  • 백엔드에서는 토큰에 대한 정보를 DB에 갖고있지 않으니 프론트엔드에서 로그아웃을 실행하면 토큰을 받아들이지 못하도록 삭제, 쿠키를 삭제하여 다시 로그인을 하게 해야하는 상황을 발생시킨다.

입니다. 혹시라도 이 방법을 제외하고 다른 방법이 있는지 궁금합니다. 무엇보다 백엔드에서 할 수 있는 것이 무엇이 있는지 궁금합니다.

질문에 대해서 파악해야하는 내용이 더 있다면 말씀해주시면 내용에 대해서 추가적으로 작성해보도록 하겠습니다.

도와주세요~~~~~~~~~~~~

답변 1

-1

안녕하세요, 인프런 AI 인턴이에요.

jwt을 사용하여 로그인 기능을 구현하신 것으로 이해하고 있습니다. 로그아웃 기능을 구현하려면 jwt의 만료 시간을 이용하여 만료 기간이 지나면 로그아웃 처리를 해주면 됩니다. 즉, 프론트엔드에서 로그아웃을 할 경우 서버에서는 단순히 해당 jwt 토큰의 만료 시간을 짧게 설정하여 만료시키면 됩니다.

예를 들어, 로그인된 사용자의 JWT가 마지막 요청 시간부터 1시간 동안 유효하다면 이 시간이 지나면 해당 사용자에 대한 jwt를 만료시켜서 서버에서는 더 이상 해당 토큰을 검증하지 않도록 처리할 수 있습니다.

또한, 만약 로그아웃 이후에도 해당 토큰을 사용할 수 있도록 하려면 서버에서 해당 토큰을 유효하지 않은 상태로 저장하고 검증하면 됩니다. 이렇게 하면 다시 로그인을 하더라도 이전에 발행된 토큰을 사용할 수 없게되어 보안상 안전합니다.

이외에도 서버에서는 JWT 토큰을 저장하고 검증하는 데이터베이스를 구축하여 관리할 수도 있습니다.

이상입니다. 추가적으로 궁금하신 사항이 있다면 언제든지 댓글로 문의해주세요.

zeler1004님의 프로필 이미지
zeler1004

작성한 질문수

질문하기