JWT 갱신 토큰과 슬라이딩 세션은 사용자 인증에 널리 사용되는 두 가지 전략입니다. 이들을 결합하여 사용하면 더욱 강력한 보안 전략을 구성할 수 있습니다. JWT 갱신 토큰: JWT 갱신 토큰은 보통 긴 유효 기간을 가지며, 이 토큰을 사용해 짧은 유효 기간을 가진 액세스 토큰을 새로 발급받을 수 있습니다. 이 방식은 갱신 토큰이 탈취되더라도 공격자가 지속적으로 시스템에 액세스하는 것을 막아줍니다. 갱신 토큰이 사용될 때마다 새 갱신 토큰이 발급되고, 이전 갱신 토큰은 무효화되므로, 갱신 토큰이 한 번 탈취되면 곧바로 무효화될 것입니다. 슬라이딩 세션: 슬라이딩 세션 전략에서는, 사용자가 활동을 할 때마다 세션의 유효 기간이 연장됩니다. 이렇게 하면 사용자가 계속 활동 중인 동안에는 로그아웃되지 않습니..
JWT 갱신 토큰을 클라이언트 측에서 관리하는 일반적인 방법 중 하나는 로컬 스토리지 또는 쿠키에 갱신 토큰을 저장하는 것입니다. 로컬 스토리지를 사용하는 경우, 갱신 토큰은 클라이언트의 브라우저 로컬 스토리지에 저장됩니다. 이렇게 하면, 웹 페이지가 리로드되거나 브라우저가 닫히더라도 토큰이 유지됩니다. 클라이언트는 API 요청을 보낼 때 로컬 스토리지에서 갱신 토큰을 가져와서 요청에 포함시키면 됩니다. 쿠키를 사용하는 경우, 갱신 토큰은 쿠키에 저장됩니다. 쿠키를 사용하면 서버가 클라이언트에게 쿠키를 자동으로 설정하고, 브라우저는 그 후의 모든 요청에 자동으로 쿠키를 포함시킵니다. 쿠키를 사용하는 것은 CSRF(Cross-Site Request Forgery) 공격에 대한 보호를 제공하지만, XSS(C..
웹사이트의 로그인 API를 설계하고 만들 때는 일반적으로 다음과 같은 단계를 따릅니다: API Endpoint 생성: 로그인 기능을 위한 API 엔드포인트를 생성합니다. 보통 /login 이나 /auth/login과 같은 경로를 사용합니다. HTTP 메서드 선택: 로그인 기능에는 POST 메서드를 사용합니다. 이는 사용자의 로그인 정보(이메일과 비밀번호 등)를 서버에 전송하므로, 이 정보를 안전하게 보호하기 위해 POST 메서드를 사용합니다. 입력 데이터 검증: 사용자로부터 받은 입력 데이터(이메일, 비밀번호 등)를 검증합니다. 이메일 형식이 올바른지, 비밀번호가 충분히 안전한지 등을 확인합니다. 사용자 인증: 사용자의 이메일과 비밀번호를 데이터베이스나 다른 저장소에서 검색하여 실제 사용자 정보와 일치하..