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
반응형
home top bottom
}