AccessToken만 사용
- 짧은 만료 시간:
- 장점: 토큰 탈취당해도 빠르게 만료 가능
- 단점: 사용자가 자주 로그인 해야함(불편함)
- 긴 만료 시간:
- 장점: 사용자가 로그인 자주할필요X(편함)
- 단점: 토큰 탈취시 오랫동안 제약없이 사용
Sliding Sessions + AccessToken
AccessToken을 가진 클라이언트의 요청에 대해 서버가 새로운 AccessToken을 발급해주는 방법
(요청때마다 새롭게 AccessToken 발급)
- 장점:
- 로그인을 자주 할 필요 X
- 글을 작성, 결제 등 세션 유지가 필요한 순간에 세션 만료 문제를 방지
- 단점:
- 접속이 주로 단발성으로 이루어지는 서비스의 경우효과가 크지 않음
- 긴 만료 시간을 갖는 AccessToken 사용하는 경우, 로그인을 전혀 하지 않아도 되는 경우 발생
Refresh Token + AccessToken
- 장점
- 짧은 만료 기간을 사용 할 수 있기 때문에 AccessToken이 탈취되더라도 제한된 기간만 접근 가능
- 사용자가 로그인을 자주 할 필요가 없음
- RefreshToken에 대한 만료를 강제로 설정 가능(서버측에서 클라이언트 제어 가능)
- 단점
- 클라이언트는 AccessToken의 만료에 대한 연장 요청을 구현.(과정 복잡 어려움)
- 인증 만료 기간의 자동 연장이 불가능(무조건 refreshToken의 정해진 기간까지만 사용가능)
- 서버에 별도의 storage를 만들어야 함(jwt의 stateless한 장점을 지워버림)
결정
우리는 서비스의 고유한 특성을 고려해 보안 수준을 높일지, 사용자 편의성을 높일지를 결정해야 했다.
'hyper-link'는 편의성, 간편함을 무기로 하는 통합 플랫폼 서비스이기 때문에,
사용자 편의성에 중점을 두는 refreshToken 방식을 선택했다.
'hyper-link(통합플랫폼)'의 경우 게시글 클릭 후, 글을 읽는 시간이 필요하다.
그래서 사용자가 로그인 후, 글을 읽는 시간 동안 서버에 요청을 보내지 않는 경우도 존재한다.
이때마다 플랫폼에 돌아와서 로그인을 다시 요구한다면, 유저는 불편함을 느낄 것이다.
또 사용자가 자신이 맘에 드는 정보를 얻기위해서 가볍게 잠깐잠깐 들어올 수도 있는 서비스이다.
이러한 경우에는 잦은 단발성의 접속이 고려되는 유저스토리이기 때문에, sliding session의 효과를 볼 수 없다.
결국 'hyper-link'라는 통합플랫폼 서비스는 보안보다는 상대적으로 사용자의 편의성에 비중을 두어 refreshToken 방식으로 인증방식을 결정했다.
출처
- https://theheydaze.tistory.com/550
- https://tecoble.techcourse.co.kr/post/2021-10-20-refresh-token/
- https://velog.io/@yaytomato/%ED%94%84%EB%A1%A0%ED%8A%B8%EC%97%90%EC%84%9C-%EC%95%88%EC%A0%84%ED%95%98%EA%B2%8C-%EB%A1%9C%EA%B7%B8%EC%9D%B8-%EC%B2%98%EB%A6%AC%ED%95%98%EA%B8%B0
- https://medium.com/@uk960214/refresh-token-%EB%8F%84%EC%9E%85%EA%B8%B0-f12-dd79de9fb0f0
'끄적끄적' 카테고리의 다른 글
refreshToken 저장위치와 형태 고민 (0) | 2023.03.20 |
---|---|
2022.12.18 블로그 변경 (0) | 2022.12.18 |