Basic
175. [Backend][Basic] REST API와 JWT 인증
천재단미
2025. 3. 19. 10:10
728x90
반응형
REST API란?
REST API는 웹 서비스에서 데이터를 주고받기 위한 표준적인 방식입니다. REST(Representational State Transfer)는 클라이언트(사용자)와 서버(웹 애플리케이션) 간의 통신을 효율적으로 처리하는 아키텍처입니다.
REST API의 특징
- 리소스 기반 설계: 모든 데이터(사용자, 상품, 게시글 등)는 각각의 URL을 통해 접근할 수 있습니다.
- HTTP 메서드 활용: 데이터를 조작할 때, 다음과 같은 HTTP 메서드를 사용합니다.
- GET : 데이터를 조회
- POST : 데이터를 생성
- PUT : 데이터를 수정
- DELETE : 데이터를 삭제
- 상태 유지 X(Stateless): 서버는 클라이언트의 상태를 기억하지 않으며, 요청마다 필요한 정보를 포함해야 합니다.
- JSON 또는 XML 형식 사용: 응답 데이터는 보통 JSON 형식으로 제공되며, 가독성이 좋고 가볍습니다.
REST API 예제
클라이언트가 서버에 GET 요청을 보낼 때:
GET <https://api.example.com/users/1>
서버 응답 (JSON 형식):
{
"id": 1,
"name": "John Doe",
"email": "johndoe@example.com"
}
이처럼 REST API는 웹 애플리케이션의 데이터를 효율적으로 제공하는 역할을 합니다.
API JWT 발급의 흐름
API를 안전하게 사용하려면 **인증(Authentication)**이 필요합니다. 가장 널리 사용되는 방법 중 하나가 JWT(JSON Web Token) 인증입니다.
JWT란?
JWT는 JSON을 기반으로 한 인증 토큰입니다. 사용자의 로그인 정보를 암호화하여 클라이언트와 서버 간의 보안을 유지합니다.
JWT 인증 과정
1️⃣ 사용자 등록 (Sign Up)
- 사용자가 회원가입을 진행합니다.
- 서버는 사용자의 정보를 데이터베이스에 저장합니다.
2️⃣ 로그인 요청 (Sign In)
- 사용자가 이메일과 비밀번호를 입력하여 로그인합니다.
- 서버는 해당 정보를 확인하고, 로그인 성공 시 JWT 토큰을 생성하여 반환합니다.
3️⃣ JWT 토큰 발급
- 로그인 성공 시 서버는 JWT 토큰을 생성하여 클라이언트에 전달합니다.
- 이 토큰은 사용자 정보(이메일, 역할 등)를 포함하며, 서명(Signature)으로 보호됩니다.
4️⃣ 클라이언트가 API 요청 시 JWT 포함
- 사용자는 API를 호출할 때, 요청 헤더에 JWT 토큰을 포함합니다.
GET <https://api.example.com/profile>
Authorization: Bearer
5️⃣ 서버에서 JWT 검증
- 서버는 클라이언트가 보낸 JWT가 유효한지 확인합니다.
- 유효하면 요청을 처리하고 응답을 반환합니다.
JWT 예제
JWT는 3개의 부분으로 구성됩니다:
Header(헤더), Payload(내용), Signature(서명)
{
"alg": "HS256",
"typ": "JWT"
}
.
{
"userId": 123,
"email": "john@example.com",
"exp": 1672531199
}
.
[서명 값]
서명(Signature)은 JWT가 위조되지 않았음을 증명하며, 이 값이 올바르지 않으면 API 요청이 거부됩니다.
728x90
반응형