jwt가 refresh token이던 RTR 기법을 덧데던 어짜피 jwt 자체가 scalable한 구조에서 보안성 희생하는 대신 성능 얻으려고 쓰는건데,
ecommerce같은 고객 돈 관련 앱들은 보안이 졸라 중요하니까,
현업에서 대부분은 무적권 세션 쓰지 않을까?
가끔씩 보면 세션이랑 jwt랑 섞어쓰는 경우도 있다는데,
이건 성능은 세션만큼 포기하고, 보안을 2중장치 한 거라고 봐도 되나?
결국 jwt은 돈 안걸린 가벼운 앱에서 성능 잡으려고 쓰는거 아님?
나도 이거 궁금한게 리프레시 토큰 쓰면 결국 jwt 쓰는 장점이 사라지는거 아닌가?
아님
왜 msa가 뜨면서 jwt도 같이 등판했는지 생각해보셈
msa 아직 안써봐서 잘은 모르겠는데, msa에서 주문 서버, 회원 서버 등으로 쪼개져있다고 치면, 모든 서버가 통합 인증해주는 서버에 통신할 필요 없기 개별로 user authenticate 해서 처리하기 위해 jwt를 쓴다라고 chatGPT가 알려주긴 하는데, 그럼 ecommerce msa는 세션 안씀? 보안은 우짬?
그럼 msa에서 각 액션마다 다 jwt로 authentication 거쳐야되는거임? 오히려 부하 증가 아닌가 그럼?
cpu 바운드 비용이 io 바운드 비용보다 싸니까
msa는 서버 죄다 쪼개놔서 authenticate할 때마다 db io 하는거 에바고 유저 정보 동기화 시키기도 어려우니까 분산환경에 맞는 jwt를 어쩔 수 없이 선택하는 건가? 보안 좀 포기하더라도? 반면 monolith는 보안 잡아야 하니까 session으로 대부분 가는거고?
예를들어 게이트웨이 서버에서 세션으로 인증하게 시키고 거기서 다른 도메인서버를 호출할때만 jwt로 서로 통신 하는 구조라고 하면 클라이언트는 jwt로 아예 뒤에 접근할일도 없을수도 있겠죠? 구조 나름이고 jwt를 어떻게 쓰냐에 따라 보안문제가 안생기게 쓸수 있을거같은데요. 사실 세션이라고 무조건 안전한것도 아닌데 털리는 보안적 요소는 별 차이없고 평소랑 다른 환경에서 접속하면 그걸 알아차리고 유저한테 바로 경고 보내주면, 유저를 다시 로그인 시키면 바로 세션을 만료시킬수 있어서 그렇지 그것도 보내줘도 유저가 대처 안하면 jwt랑 다를것도 없이 털리는건 똑같지 않을까요?
ㄴ제가 좆밥이라 잘 이해가 안되서 그러는데 세션을 통해 인증이라는 포인트를 거쳐야하면 jwt가 갖는 stateless의 장점이 사라지는거 아닌가요
msa에서 session+jwt 방식을 사용할 떄, 게이트웨이 서버에서 인증 했는데, 왜 다른 서버에서 또 jwt로 인증해야함? gateway 서버에서 인증 끝났으면 유저 정보 담아서 다른 서버에 요청 보내면 되잖아?