강의

멘토링

커뮤니티

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

tkddyd420님의 프로필 이미지
tkddyd420

작성한 질문수

스프링부트 시큐리티 & JWT 강의

스프링부트 시큐리티 17강 - JWT 구조 이해

스프링 시큐리티도 세션 기반 인증 방식 사용할 수 있나요??

작성

·

582

0

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!
- 먼저 유사한 질문이 있었는지 검색해보세요.
- 서로 예의를 지키며 존중하는 문화를 만들어가요.
- 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.'
 
안녕하세요? 스프링 시큐리티를 몰라서 강의를 듣고있는 병아리 개발자입니다! 밑에 질문글에서 세션과 차이점에 관한 질문 답변에 밑 블로그 글이 있어서 읽고 왔는데 질문이 있습니다.
이 글에서도 읽어봤듯이 웹에서의 동작에서는 JWT방식을 추천하지 않는다고 나와있는데 이는 토큰의 탈취때문이라고 적혀있는 것 같습니다.
현재 강의는 jwt처럼 토큰 인증 방식을 사용하는 것 같은데 그렇다면 스프링 시큐리티도 세션 기반 인증 방식을 사용할 수 있나요?
 
 
그리고 강의는 잘 보고 있습니다 ^^ 친구들에게도 추천하고 다닙니다 ㅎㅎ 최근 유튜브 구독도 했어요~ !!

답변 1

1

최주호님의 프로필 이미지
최주호
지식공유자

스프링 시큐리티도 세션기반으로 사용가능합니다. Stateful이 기본지원방식이에요.

 

다만 나중에 앱은 JWT, 웹은 세션 기반으로 사용하게 되면 서버 두개를 만드는 단점이 있자나요.

 

그래서 JWT 기반 서버를 만드는것을 추천드려요. 토큰 탈취는 답이 없지만 시간을 10분 단위로 두면 괜찮아요.

그리고 10분이 지나면 refresh 토큰으로 다시 accessToken을 발급하는 로직을 취해주시면 됩니다.

 

이 부분은 제 강의에는 없지만 충분히 혼자 구현할 수 있어요.

 

추천 너무 감사해요 ㅎ

tkddyd420님의 프로필 이미지
tkddyd420
질문자

스프링 시큐리티는 Stateful이 기본지원방식이라 세션기반 가능하다.
JWT의 토큰탈취는 HttpOnly, Https 이런걸로 보안을 올리고, 만료시간을 10분단위로 한다.

만료가 되면 refresh 토큰으로 재발급해주는 로직을 취해주면된다.

여기까지 제가 궁금했던 질문에 대한 답변이어서 정말 감사합니다 ^^

tkddyd420님의 프로필 이미지
tkddyd420
질문자

그런데 앱과 웹 둘 다 세션 기반으로 만드는 방법도 있지 않나요?

세션으로 만들면 확장성 문제때문에 앱에서는 JWT기반 서버를 만드는 것을 추천하신건가요?

tkddyd420님의 프로필 이미지
tkddyd420

작성한 질문수

질문하기