지돌이
331
2021-07-08 23:53:18 작성 2021-07-08 23:56:07 수정됨
3
199

jwt에 대해서 궁금한게 있습니다.


안녕하세요...

Springboot를 사용해서 백엔드를 구현하고 vue js를 사용해서 프로젝트를 진행 하려고 합니다.

보통 스프링과 jsp를 사용해서 세션으로 로그인처리를 개발 했었는데 jwt로 개발하려니 간단한것 

같아보이면서도 처리를 할게 많이 보이더라구요..검색을 해보면 vue와 같은 SPA로 개발을 할때 로그인 처리는 

jwt가 많이 나오더라구요.. jwt를 사용해서 꼭 로그인을 처리를 해야할까요? 다른 차선택은 없는건지요?

jwt를 공부하다보면 access 토큰과 refresh 토큰을 쿠키나 로컬스토리지에 저장을 해서 서버에 요청을 할때 토큰을 헤더

에 담아 요청을 보내 인증을 받는다고 합니다. 이때 탈취가 될 경우 보안에 위험이 있어 access토큰의 만료 시간을 짧게

설정 후 refresh 토큰을 길게 하여  access 토큰의 기간이 만료 시 토큰을 재발급 한다고 합니다. 이때 클라이언트는

refresh 토큰을 계속해서 가지고 있지 않나요? 그럼  refresh 토큰도 탈취가 되면 어쩔수 없는 상황인가요?

refresh 토큰을 DB나 Redis에 저장을 해두어도  refresh토큰으로 인증을 받으려면 클라이언트도 계속 갖고 있어야 하

는것 같은데 ssl, http only라는 것으로 충분히 안전한지요? 처음 사용해서 개발을 하려고 하니 궁금한게 산더미 같네

요..그리고 refresh 토큰이 만료가 되면 사용자가 재 로그인을 하게 되자나요. 그럼 그때 refresh 토큰을 재발급 해주면

되는건지요? 



0
  • 답변 3

  • ISA
    5k
    2021-07-08 23:59:31

    Ssl을 통해서 통신과정의 패킷이 암호화 되고 secure httponly를 통해서 클라이언트 단에서 스크립트를 통한 접근이 불가능합니다.


    이 말이 이해가 되신다면 답변이 되겠죠

  • 타트
    428
    2021-07-09 01:14:16
    완벽한 보안은 없지만.. 크게 걱정하지 않으셔도 될것 같아요. 필요한 보안 대책을 모두 하셨다면요.

    로그인할때 어세스랑 리프레시 둘다 발급하시면 돼요.
  • 지돌이
    331
    2021-07-09 09:49:30

    ISA , 타트 두분 말씀 감사합니다.

  • 로그인을 하시면 답변을 등록할 수 있습니다.