JWT 갱신 토큰과 슬라이딩 세션은 사용자 인증에 널리 사용되는 두 가지 전략입니다. 이들을 결합하여 사용하면 더욱 강력한 보안 전략을 구성할 수 있습니다. JWT 갱신 토큰: JWT 갱신 토큰은 보통 긴 유효 기간을 가지며, 이 토큰을 사용해 짧은 유효 기간을 가진 액세스 토큰을 새로 발급받을 수 있습니다. 이 방식은 갱신 토큰이 탈취되더라도 공격자가 지속적으로 시스템에 액세스하는 것을 막아줍니다. 갱신 토큰이 사용될 때마다 새 갱신 토큰이 발급되고, 이전 갱신 토큰은 무효화되므로, 갱신 토큰이 한 번 탈취되면 곧바로 무효화될 것입니다. 슬라이딩 세션: 슬라이딩 세션 전략에서는, 사용자가 활동을 할 때마다 세션의 유효 기간이 연장됩니다. 이렇게 하면 사용자가 계속 활동 중인 동안에는 로그아웃되지 않습니..
JWT (JSON Web Tokens) 인증 시스템에서 갱신 토큰을 관리하는 일반적인 방법 중 하나는 Redis와 같은 메모리 내 데이터베이스를 사용하는 것입니다. Redis는 키-값 쌍을 저장하고, 빠른 읽기/쓰기 성능을 제공하며, 데이터의 만료 시간을 설정하는 기능을 제공합니다. 이러한 특징들은 갱신 토큰의 관리에 매우 적합합니다. Redis를 사용하여 갱신 토큰을 관리하면, 갱신 토큰을 즉시 무효화하거나, 사용자 계정이 삭제되거나 정지된 경우 모든 갱신 토큰을 무효화하는 등의 추가적인 유연성을 얻을 수 있습니다. 또한, Redis는 메모리 내 데이터베이스이기 때문에, 디스크 기반 데이터베이스에 비해 훨씬 빠른 읽기/쓰기 성능을 제공합니다. 다음은 Node.js 및 Redis를 사용하여 JWT 갱신 ..
JWT (JSON Web Token) 갱신 토큰을 이용한 인증 시스템에서 데이터베이스는 토큰의 유효성을 관리하고 보관하는 중요한 역할을 합니다. 데이터베이스를 이용하는 방식은 서버 측에서 토큰의 유효성을 검증하고, 필요에 따라 토큰을 무효화할 수 있게 해주는 강력한 방법입니다. 토큰의 생성과 저장 먼저, 사용자가 시스템에 로그인하면 서버는 JWT 토큰을 생성합니다. 이때 생성되는 토큰은 두 종류로, 하나는 짧은 유효 기간을 가진 액세스 토큰(access token)이고, 다른 하나는 긴 유효 기간을 가진 갱신 토큰(refresh token)입니다. 이 두 토큰 모두 클라이언트에게 전달되며, 클라이언트는 이를 저장하여 사용합니다. 하지만 이때 서버도 갱신 토큰에 대한 정보를 자신의 데이터베이스에 저장합니다..