Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags more
Archives
Today
Total
관리 메뉴

ultra_dev

(pathVariable/QueryParameter)//(AccessToken,RefreshToken) 본문

SPRING&JAVA

(pathVariable/QueryParameter)//(AccessToken,RefreshToken)

ultra_dev 2023. 1. 12. 01:24

☑️ Path Variable은 리소스를 식별하기 위해 사용

☑️ 데이터를 정렬, 필터링 등을 사용한다면 Query Parameter가 더 적합.

ex)

📋
/boards 했을 때 게시글이 1000개고 이러면
한번에 보여주는건 무리고 비효율적
따라서 Query Parameter로 페이징 처리

📋
/board/1
/board/2는 둘이 별개의 리소스

Query Parameter를 boards에 쓴다면

boards?page=1
boards?page=2
이들은 똑같은 boards 리소스 내에서 각기 다른 정보를 뽑아온 것

위에처럼 페이징 혹은
boards?username=woong1
boards?username=woong2
이런식으로 필터링도 마찬가지


☑️access token과 refresh token

 

일반적인 access token은 매번 db가고 매번 확인하고 검증해야 함

jwt를 사용한 accessToken은 그럴 필요가 없다

jwt는 토큰 안에 정보와 검증 서명이 포함되어 있어서 토큰 검증 가능

💥 jwt 단점은 한번 발급되면 끝이라는 점..! 보안 이슈 발생 가능

-> 따라서 accessToken 짧게 주고, refreshToken 길게 주는 방식으로 accessToken 탈취 위협 어느정도 해소

-> refreshTokenRotation방식 사용시에 RefreshToken도 지속적으로 재발급해줘서 refreshToken 탈취 위협도 어느정도 해소 가능

 

+

access token 만료시 refresh token 만료 안됐으면, 리이슈 요청해서
access token 다시 받음. refresh token까지 만료됐으면 아예 처음부터해야겠지?


만약 refresh token이없었다면 로그인하고 1시간 뒤에 갑자기 다시 로그인하라고 유저한테 뜰테고 유저는 이게 뭐야 하고 앱 삭제하겠지

refresh token토큰 유효기간이 2주면, 한번 로그인하면 2주간은 로그인된 상태 가능


문제는 자주 쓰면서 계속 로그인해도 2주 뒤엔 다시 로그인해야하니,

아예 refresh token에서 요청가면 access token뿐 아니라 refresh token까지 재발행해줘야함!!!

그러면 자주 사용하는앱에 계속 로그인 상태일 것

-> refershTokenRotation 방식


'SPRING&JAVA' 카테고리의 다른 글

View Table + JPA 매핑  (0) 2023.11.06
Schema 여정기 Multi-Tenancy(feat. PostgreSQL)  (0) 2023.11.01
체크 예외, 언체크 예외  (0) 2023.05.27
JPA 기본  (0) 2023.04.06
배열 <깊은 복사, 얕은 복사>  (0) 2023.01.13
Comments