"Bearer"는 JWT와 같은 토큰을 사용하여 인증을 구현할 때 HTTP Authorization 헤더에 사용되는 표준 형식입니다. 이 형식은 RFC 6750에 정의되어 있으며, "Bearer"는 보안 토큰을 나타내는 데 사용됩니다. 기본적으로 서버는 "Bearer" 접두사가 있는 Authorization 헤더를 찾고 그 뒤에 오는 토큰을 사용하여 요청을 인증합니다.
클라이언트가 서버에 요청을 보낼 때 Authorization 헤더를 다음과 같이 설정합니다:
Authorization: Bearer <token>
이유
- 표준화: "Bearer"는 OAuth 2.0 프레임워크에서 인증 토큰을 전달하는 표준 방법입니다. 이를 통해 다른 인증 방법들과의 혼동을 피할 수 있습니다.
- 간결함: 토큰 기반 인증을 단순하고 명확하게 표현합니다.
- 상호 운용성: 다양한 클라이언트와 서버 간의 일관된 인증 방법을 제공합니다. 이는 표준화된 방법을 사용함으로써 구현의 복잡성을 줄이고 상호 운용성을 높입니다.
클라이언트가 서버에 요청을 보낼 때:
GET /protected/resource HTTP/1.1
Host: api.example.com
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
서버는 Authorization 헤더를 읽고 "Bearer" 접두사 뒤에 오는 토큰을 추출하여 인증 과정을 진행합니다.
서버 측에서의 처리
서버는 다음과 같이 Authorization 헤더에서 토큰을 추출하여 유효성을 검사할 수 있습니다:
String authorizationHeader = request.getHeader("Authorization");
if (authorizationHeader != null && authorizationHeader.startsWith("Bearer ")) {
String token = authorizationHeader.substring(7);
// token을 검증하는 로직
}
위 코드에서 authorizationHeader.substring(7)은 "Bearer " 부분을 제거하고 실제 토큰 값만을 추출하는 역할을 합니다.
결론
"Bearer"는 JWT와 같은 토큰 기반 인증에서 토큰을 전달하는 표준 형식입니다. 이를 사용하면 다양한 클라이언트와 서버 간에 일관된 방식으로 인증을 처리할 수 있습니다.