스택큐힙리스트

JWT 리프레시 토큰 플로우 본문

카테고리 없음

JWT 리프레시 토큰 플로우

스택큐힙리스트 2023. 11. 29. 00:02
반응형

모바일 앱을 개발하고 있으며 인증을 위해 JWT를 사용하고 있습니다.


가장 좋은 방법은 JWT 액세스 토큰을 리프레시 토큰과 함께 사용하여 원하는만큼 액세스 토큰을 만료시킬 수 있다는 것 같습니다.



  1. 리프레시 토큰은 어떻게 생겼나요? 랜덤한 문자열인가요? 그 문자열은 암호화되어 있나요? 다른 JWT인가요?

  2. 리프레시 토큰은 데이터베이스의 사용자 모델에 저장되어 액세스에 사용되는 것이 맞습니까? 이 경우에는 암호화되어야 할 것 같습니다.

  3. 사용자 로그인 후에 리프레시 토큰을 다시 전송하고, 클라이언트가 별도의 경로를 통해 액세스 토큰을 가져오도록 하나요?

답변 1

다음은 JWT 액세스 토큰을 취소하는 방법입니다:



  1. 로그인 할 때 클라이언트에게 2 개의 토큰 (액세스 토큰, 리프레시 토큰)을 응답으로 전송합니다.

  2. 액세스 토큰은 만료 시간이 더 짧고 리프레시 토큰은 긴 만료 시간이 있습니다.

  3. 클라이언트 (프론트 엔드)는 리프레시 토큰을 httponly 쿠키에 저장하고 액세스 토큰을 로컬 스토리지에 저장합니다.

  4. 클라이언트는 API를 호출할 때 액세스 토큰을 사용합니다. 그러나 만료되면 인증 서버 API를 호출하여 새 토큰을 가져옵니다 (리프레시 토큰은 쿠키에 저장되어 있으므로 자동으로 HTTP 요청에 추가됩니다).

  5. 인증 서버에는 리프레시 토큰의 유효성을 확인하고 새 액세스 토큰을 반환하는 노출된 API가 있습니다.

  6. 리프레시 토큰이 만료되면 사용자가 로그아웃됩니다.


더 많은 세부 정보가 필요하면 알려주세요. 코드 (Java + Spring Boot)도 공유할 수 있습니다.


질문이 있으시면 언제든지 말씀해주세요:

질문 1: 조금 더 적은 클레임이 있는 장기 만료 시간으로 다른 JWT입니다.


질문 2: 데이터베이스에 저장되지 않을 것입니다. 백엔드는 토큰을 비밀/공개 키로 복호화하고 만료 시간으로 유효성을 확인할 것입니다.


질문 3: 네, 맞습니다.

답변 2

JWT Refresh Token Flow: 안전한 인증 및 엑세스 관리
JWT(토큰)는 모바일 애플리케이션 및 웹 서비스에서 인증 및 엑세스 관리를 위해 널리 사용되는 인기있는 해법입니다. JWT는 JSON 형식으로 구성되어 있으며, 클라이언트와 서버 간의 안전한 정보 교환을 가능하게 합니다. 이러한 토큰은 보안성과 확장성이 뛰어나며, JWT를 사용한 애플리케이션은 사용자 경험을 향상시키고 개발 생산성을 향상시키는 데 도움을 줍니다.
JWT 토큰은 일반적으로 액세스 토큰과 리프레시 토큰의 두 부분으로 구성됩니다. 액세스 토큰은 회원 인증 및 서비스에 대한 엑세스를 제공하는 데 사용되며, 일반적으로 만료 기간이 짧습니다. 반면 리프레시 토큰은 액세스 토큰 만료 시간이 지나면 발급되며, 장기적인 세션 관리를 위해 사용됩니다.
JWT 리프레시 토큰 플로우는 다음과 같은 단계로 구성됩니다. 먼저, 사용자가 신원을 인증하면 서버는 유효한 액세스 토큰과 함께 리프레시 토큰을 제공합니다. 액세스 토큰은 클라이언트가 서버의 보호된 자원에 액세스할 수 있도록 허용합니다. 액세스 토큰이 만료되면 클라이언트는 리프레시 토큰을 사용하여 새로운 액세스 토큰을 가져올 수 있습니다.
리프레시 토큰을 사용하여 새로운 액세스 토큰을 발급하는 단계에서 서버는 클라이언트의 요청을 확인하고 사용자의 유효한 신원을 확인합니다. 이를 통해 잠재적인 악의적인 클라이언트로부터의 보호가 가능합니다. 서버는 만약 신원이 확인되면 새로운 액세스 토큰을 반환하며, 그렇지 않으면 클라이언트가 다시 인증을 요청해야 합니다.
JWT 리프레시 토큰 플로우는 보안과 확장성의 측면에서 이점이 있습니다. 액세스 토큰의 만료 기간이 짧기 때문에, 잠재적인 보안 위협에서 회복되기까지의 시간이 짧아지므로 보안성이 향상됩니다. 또한, 리프레시 토큰은 재발급이 가능하며, 만료 기간이 더 길기 때문에 사용자 경험을 최적화 할 수 있습니다. 이는 사용자가 자주 로그인하지 않고도 서비스에 지속적으로 액세스 할 수 있도록 해줍니다.
따라서 JWT 리프레시 토큰 플로우는 모바일 애플리케이션 및 웹 서비스에서 안전한 인증 및 엑세스 관리를 위한 효과적인 방법입니다. 이러한 플로우를 구현함으로써, 서비스 제공업체는 사용자들에게 더 나은 보안성과 편리한 액세스 경험을 제공할 수 있습니다.

반응형
Comments