Bearer가 뭐야?

subbni·2022년 4월 26일
0

What n Why?

목록 보기
1/1

Bearer가 뭔데?

프로젝트 FromBookToBook 를 구현하면서 인증을 위해 JWT 방식을 사용했다.
token 구현 방식에 대해 자세히 모르는 상태에서 처음 구현을 할 때는 한 유명한 블로그의 코드를 거의 똑같이 작성하다싶이 따라 적으면서 모르는 부분이 나오면 검색을 하며 공부를 해나갔다.

백엔드 코드 작성 중 Http request로부터 토큰을 가져오는 메서드에서 다음과 같은 코드를 만났다.

        String bearerToken = request.getHeader("Authorization");
        if(StringUtils.hasText(bearerToken) && bearerToken.startsWith("Bearer ")) {
            System.out.println(bearerToken.substring(7,bearerToken.length()));
            return bearerToken.substring(7,bearerToken.length());
        }

요청 헤더의 'Authorization' 필드 값이 'Bearer '로 시작하는지 확인하고,
'Bearer ' 다음 값부터 끝까지 추출해낸다.

request를 보내는 프론트쪽의 코드도 확인해보았다.

const headers = new Headers({
    'Content-Type': 'application/json',
  });

  if (localStorage.getItem(ACCESS_TOKEN)) {
    headers.append(
      'Authorization',
      'Bearer ' + localStorage.getItem(ACCESS_TOKEN)
    );

'Authorization' : 'Bearer '+ <ACCESS_TOKEN>
의 구성으로 요청헤더에 넣어 보내는 것을 확인.

name이 Authorization인건 그래 이해가 간다.
근데 Bearer는 뭔데 ?

Authorization

간단하게 검색해 본 결과, token 기반 인증 방식을 취할 때, 요청 헤더에
Authorization : <type> <credentials>
의 구성을 취하는 것이 포맷이라고 한다.

여기서 type이 몇 가지로 나뉘고, 그 몇 가지 중 하나가 'Bearer' 방식이었던 것이다. 아하

type

BASIC

사용자의 아이디와 비밀번호를 Base64로 인코딩한 값을 토큰으로 사용하는 방식.

BEARER

JWT 혹은 OAuth에 대한 토큰을 사용하는 방식.

HOBA

전자 서명 기반 인증 방식.

AWS4-HMAC-SHA256

AWS 전자 서명 기반 인증 방식.

등등등 ...

여러 가지 방식이 존재한다.

결론

token 기반 인증 방식을 사용할 경우
Authorization : <type> <credentials> 의 구성으로 요청 헤더에 인증 토큰을 보낸다.
token의 type에는 여러가지가 존재하며, 그 중 JWT를 이용할 경우에는 Bearer type에 해당하여
'Authorization' : 'Bearer ' + <ACCESS_TOKEN> 로 요청 헤더가 구성된다.

profile
개발콩나물

0개의 댓글