개발자
안녕하세요! Jwt 인증로직을 구현하고있는데, 리프레시토큰 쪽을 구현하다가 문득 의문이 들어서 질문 남겨봅니다! 보통 엑세스토큰이 만료되었을때 1. 리프레시 토큰으로 검증에 성공하면 이후, 기존 요청은 캔슬하시고 새로운 토큰을 클라이언트에게 반환 2. 리프레시 토큰으로 검증에 성공하면 새로운 토큰정보를 기존 요청에 대한 반환과 함께 반환 1번 방법으로 한다면, 클라이언트쪽에서는 2번의 요청을 수행해야하고, 2번 방법으로 한다변 1번의 요청만으로 기존 요청에 대한 수행과 토큰 갱신을 둘다 할 수 있을것같은데 보통 실무에서는 어떻게 진행하나요??
답변 1
안녕하세요. 아직 부족한 주니어라 틀릴 수도 있습니다! 질문에 대해 제가 잘 이해한 건진 모르겠지만 백엔드 기준으로 이해했으며, 토큰 재발급 API를 분리하는 것이 아닌 평소에 토큰 2개를 같이 보내다가 accessToken이 만료되면 같이 온 refreshToken으로 사용하신다는 걸까요?? 우선 저 같은 경우는 평소엔 accessToken만 받다가 만료되어 401이 리턴이 되면 프론트 쪽에서 토큰 재발급 요청 api를 호출하여 갱신 후 401 리턴을 받은 API를 재호출하는 방향으로 하고 있습니다!
설송우
작성자
만 1년차 풀스택 개발자 • 2024년 06월 19일
그렇군요! 답변 감사합니다. :)!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 06월 18일
안녕하세요! JWT 인증 로직에 대한 질문을 주셔서 감사합니다. 이에 대해 말씀드리면 보통은 첫 번째 방법을 따르는 편입니다. 그 이유는 서버와 클라이언트 사이의 요청/응답 시간과 처리를 최대화하고, 관리하는데 심플함을 유지하기 위해서입니다. 엑세스 토큰이 만료됐다는 것은 클라이언트가 잘못된 혹은 더 이상 유효하지 않은 자격 증명으로 요청을 보낸 것으로 해석할 수 있으므로, 해당 요청은 곧바로 거절되어야 합니다. 그 후 서버는 이를 클라이언트에게 알려줄 의무가 있고, 클라이언트는 이 정보를 바탕으로 리프레시 토큰을 사용하여 새로운 엑세스 토큰을 얻어 다시 요청하는 방식으로 진행합니다. 두 번째 방법도 일부 경우에서는 장점이 있지만, 굳이 필요하지 않으면 선택하지 않습니다. 기존 요청을 수행하되 새로운 토큰 정보를 함께 반환하는 것은 서버 로직의 복잡성과 오류 가능성을 높일 수 있습니다. 즉, 요청의 순수성을 유지하면서 인증 관리를 위한 별도의 프로세스를 갖는 것이 좋습니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!