Bearer 인증(RFC 6750)은 미리 발급받은 불투명(opaque) 토큰이나 JWT를 `Authorization: Bearer <token>` 헤더에 실어 보내는 방식으로, OAuth 2.0과 대부분의 최신 REST API가 표준으로 채택하고 있습니다. 이름 그대로 '토큰을 소지한 자(bearer)'가 곧 권한을 갖는다는 뜻입니다.
Authorization: Bearer <token>토큰을 소지했다는 사실 자체가 인증의 근거이므로, 요청마다 사용자 이름/비밀번호를 보내는 Basic과 달리 로그인 시 한 번 토큰을 발급받고 이후에는 그 토큰만 반복 제시합니다. 토큰은 서버가 상태를 들고 있는 불투명 토큰(내부 저장소를 조회해 검증)일 수도 있고, 자체 서명으로 검증하는 JWT(무상태)일 수도 있습니다.
실무에서는 access token과 refresh token을 분리합니다. access token은 수명이 짧고(수 분~1시간) 실제 API 호출에 쓰이며, refresh token은 수명이 길고 오직 새 access token을 재발급받는 데만 사용합니다. access token이 만료되면 서버는 401과 함께 `WWW-Authenticate: Bearer error="invalid_token"`을 돌려주고, 클라이언트는 refresh token으로 조용히 갱신한 뒤 원래 요청을 재시도합니다.
토큰은 소지 자체가 권한이라 탈취되면 즉시 악용됩니다. 그래서 access token의 수명을 짧게 두어 노출 창을 좁히고, refresh token은 더 강하게 보관·회전(rotation)합니다.
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0In0.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5ccurl -H 'Authorization: Bearer <access_token>' https://api.example.com/mefetch('/me', {
headers: { Authorization: 'Bearer ' + accessToken }
});HTTP/1.1 401 Unauthorized
WWW-Authenticate: Bearer realm="api", error="invalid_token", error_description="The access token expired"