Authorization: Bearer <jwt_token>은 클라이언트가 서버에 요청을 보낼 때, 해당 요청이 인증된 사용자로부터 온 것임을 증명하기 위해 사용되는 HTTP 헤더입니다. 이 헤더는 주로 JSON Web Token (JWT)를 사용한 인증 시스템에서 사용되며, <jwt_token> 부분에는 클라이언트가 서버로부터 발급받은 JWT가 포함됩니다.
클라이언트 로그인: 클라이언트가 사용자 자격 증명(예: 사용자 이름, 비밀번호)을 사용해 서버에 로그인 요청을 합니다.
서버에서 JWT 발급: 서버는 자격 증명을 검증한 후, 클라이언트에게 JWT를 발급합니다. 이 토큰은 사용자의 정보를 포함하며, 클라이언트는 이후 요청에서 이 토큰을 사용해 자신을 인증합니다.
클라이언트의 요청: 클라이언트는 이후 서버에 요청을 보낼 때, Authorization 헤더에 Bearer <jwt_token>을 포함시켜 요청을 보냅니다.
GET /api/some-protected-resource/ HTTP/1.1
Host: example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
서버에서 JWT 검증: 서버는 요청을 받으면, Authorization 헤더에 포함된 JWT를 검증합니다. JWT의 서명이 유효하고, 토큰이 만료되지 않았으며, 해당 토큰이 적절한 권한을 가지고 있다면, 서버는 요청을 처리하고 응답을 반환합니다.
응답 반환: 서버는 요청이 유효하다면 클라이언트에게 요청된 데이터를 반환하거나 작업을 수행합니다. 만약 JWT가 유효하지 않거나 권한이 없다면, 서버는 401 Unauthorized 또는 403 Forbidden 상태 코드를 반환할 수 있습니다.
HS256(HMAC SHA-256)이나 RS256(RSA SHA-256)과 같은 알고리즘이 일반적으로 사용됩니다.Authorization: Bearer <jwt_token> 헤더는 클라이언트가 서버에 요청을 보낼 때 자신을 인증하기 위해 사용하는 방식입니다. JWT를 사용하면 서버가 클라이언트의 신원을 검증할 수 있으며, 이를 통해 리소스에 대한 접근 권한을 관리할 수 있습니다. JWT는 무상태성, 확장성, 보안 등의 장점이 있지만, 토큰 유출과 만료 관리 등의 측면에서 신중한 고려가 필요합니다.