Written on
·
13
0
Dio로 inspector을 구현한 이후 토큰 만료 시 refreshToken으로 accessToken을 재발급하는 과정에서 만약 API요청을 하나만이 아니라 동시에 3개가 요청되는 상황일 때 어떻게 되는지 궁금합니다.
시나리오는 게시글의 상세페이지로 이동하였을 때 게시글, 댓글, 사용자 정보 등의 API를 동시에 보내게 된다면 모두 요청 중인 상황이고 그 상황에서 accessToken이 만료된 상황이라면 3 모두 다 refreshToken으로 3번 accessToken을 요청되어 accessToken이 꼬이게 되는 상황이 나올 것 같아 질문 드립니다
Answer 2
0
안녕하세요!
API 요청을 만료된 토큰으로 A,B,C 요청을 동시에 보냈을때의 상황에대한 질문 맞으실까요?
아주 좋은 고민을 하셨지만 사실 문제될건 전혀 없습니다.
"accessToken이 꼬이게 된다"라고 말씀하셨는데 이부분은 어떻게 꼬일거라고 생각하시는지 정확히 말씀해주시면 추가로 답변 드릴게요.
일단 모두 access token으로 새로 발급 받으려고 시도할겁니다.
그리고 가장 늦게 응답받은 토큰을 프론트엔드에서 저장하게 되겠죠.
결국 흐름은 똑같습니다. 가장 최근 발급받은 access token이 추후 요청을 처리하는데 사용되게 됩니다.
감사합니다!
0
안녕하세요, 인프런 AI 인턴입니다.
femun0427님께서 질문하신 내용은 Flutter에서 여러 API 요청을 동시에 진행할 때, 각 요청마다 토큰이 만료되어 refreshToken을 사용해 토큰을 갱신하는 과정에 대한 문제점을 다루고 있습니다. 이 문제는 실제로 많은 개발자들이 직면하는 일반적인 상황이며, 이를 해결하기 위한 몇 가지 방법이 있습니다.
토큰 재발급 관련 질문입니다 - 이 질문에서는 여러 API 요청으로 인해 다수의 토큰 갱신 요청이 발생할 때의 처리 방법에 대해 다루고 있습니다. 예를 들어, 요청을 순차적으로 처리하면 득보다 손실이 클 수 있어 이 문제를 해결하는 데 약간의 보완 방법이 어떻게 도움이 될 수 있는지 설명합니다.
만료된 refreshToken으로 요청할때의 문제, try catch가 작동하지 않는듯? - 이 게시물은 refreshToken의 만료 처리와 관련된 로직에 대한 안내를 포함하고 있어 동시에 발생하는 갱신 요청 문제를 이해하는 데 도움이 됩니다.
인터셉터 패턴 사용: Dio의 인터셉터를 사용하여 인증 실패 시 토큰 갱신 요청을 중앙에서 처리할 수 있습니다. 이미 진행 중인 갱신 요청이 있다면 대기하여 다른 갱신 요청을 차단할 수 있습니다.
피어싱 로직(Peering Logic): 여러 요청이 동시에 같은 행동(토큰 갱신)을 해야 할 때, 이미 진행 중인 동일 작업에 다른 요청이 참여하여 결과를 대기하는 방식으로 처리하여 불필요한 요청을 줄일 수 있습니다.
토큰 갱신 전략 업데이트: 모든 API 요청에서 토큰 만료 체크가 아닌, 한 곳의 공통된 엔드포인트에서만 토큰 갱신을 체크하고 갱신한다면 요청마다 갱신하지 않도록 설계하여 문제를 최소화할 수 있습니다.
위의 링크와 설명이 femun0427님의 문제 해결에 도움이 되기를 바랍니다. 더 심도 있는 해결책이 필요하다면, 강의 자료와 예제를 추가로 참조하여 구체적인 구현 방법을 시험해 보실 것을 권장드립니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.