로컬 스토리지나 쿠키에 갱신 토큰(refresh token)을 저장하는 방식은 클라이언트 사이드에서 갱신 토큰을 관리하고 필요할 때마다 서버에 전송하여 액세스 토큰(access token)을 갱신하는 방법입니다. 이 방법을 사용할 때는 주로 다음과 같은 절차를 따릅니다: 토큰 발급: 사용자가 로그인하면, 서버는 액세스 토큰과 갱신 토큰을 생성합니다. 액세스 토큰은 짧은 유효 기간을 가지며, 갱신 토큰은 더 긴 유효 기간을 가집니다. 토큰 저장: 클라이언트는 받은 액세스 토큰과 갱신 토큰을 로컬 스토리지나 쿠키에 저장합니다. 토큰 사용: 클라이언트는 API 요청을 할 때마다 액세스 토큰을 Authorization 헤더에 넣어서 보냅니다. 토큰 만료: 액세스 토큰이 만료되면, 클라이언트는 서버에 갱신 요청을..
갱신 토큰(refresh token)은 사용자가 로그인한 후에 주로 액세스 토큰(access token)을 갱신하기 위해 사용됩니다. 이러한 갱신 토큰은 보통 만료 시간이 오래 걸리거나 만료되지 않게 설정됩니다. 사용자가 로그아웃하거나 세션을 종료할 때까지 유효한 토큰을 제공하는 것이 목표입니다. 갱신 토큰을 관리하는 방법은 여러 가지가 있습니다. 아래에 몇 가지 일반적인 방법을 설명하겠습니다. 1. 데이터베이스에 저장: 이 방법은 갱신 토큰을 데이터베이스에 저장하고, 토큰을 이용해 액세스 토큰을 갱신할 때마다 데이터베이스를 조회하여 토큰의 유효성을 확인하는 방법입니다. 이 방법은 갱신 토큰이 탈취당했을 경우, 토큰을 데이터베이스에서 삭제함으로써 무효화할 수 있다는 장점이 있습니다. 2. 블랙리스트 사용..
JWT 토큰을 사용하는 경우, 보통은 사용자 세션을 갱신하거나 관리하는데 필요한 특별한 단계가 없습니다. 왜냐하면 JWT는 stateless하며, 토큰이 만료되기 전까지는 사용자 인증 정보를 포함하고 있기 때문입니다. 그러나 만약 사용자가 로그아웃하거나 세션을 갱신해야 하는 경우에는 몇 가지 옵션이 있습니다. 1. 토큰 만료시간 짧게 설정하고 갱신 토큰 사용: 액세스 토큰의 만료시간을 짧게 (예: 15분) 설정하고, 별도의 갱신 토큰(refresh token)을 발급하여 사용합니다. 사용자가 로그인을 하면, 둘 다 발급됩니다. 액세스 토큰은 사용자 인증을 위한 짧은 기간 동안 사용하고, 만료되면 갱신 토큰을 사용하여 새 액세스 토큰을 발급받습니다. 2. 토큰 만료 체크 및 갱신: 클라이언트는 액세스 토큰..
JSON Web Token(JWT)는 웹 표준 (RFC 7519)으로, 두 객체 사이에서 정보를 안전하게 전송하는 방법을 정의합니다. JWT는 일반적으로 인증 및 정보 교환에 사용됩니다. Node.js 애플리케이션에서 JWT를 생성하고 검증하는 데는 jsonwebtoken 라이브러리를 자주 사용합니다. 다음은 JWT를 사용한 로그인 API의 예시입니다: const express = require('express'); const jwt = require('jsonwebtoken'); const app = express(); app.use(express.json()); // Enable JSON body for POST requests app.post('/login', (req, res) => { const..