JWT 와 OAuth 의 차이

Chan Young Jeong·2023년 7월 18일
1

면접준비

목록 보기
3/3

JWT와 OAuth에 대해 공부하면서 두 개의 차이를 명확하게 정리하고 넘어가기 위해 글을 작성한다.

쉽게 표현하면 JWT는 토큰의 종류이고, OAuth는 토큰을 발급하고 인증하는 오픈 스탠다드 프로토콜이다.

JWT(Jason Web Token)은 클라이언트와 서버 간의 인증을 위한 토큰 기반 방식입니다. 일반적으로 웹 애플리케이션에서 사용되며, 클라이언트가 서버로 인증 정보를 전달하고 서버는 해당 정보를 검증하여 사용자에 대한 인증 및 권한 부여를 수행합니다.

JWT는 헤더(Header), 페이로드(Payload), 서명(Signature) 세 부분으로 구성됩니다. 헤더에는 토큰 유형과 암호화 알고리즘 정보가 포함되어 있으며, 페이로드에는 클레임(Claim) 정보가 포함됩니다. 클레임은 사용자, 권한, 유효 기간 등의 정보를 담을 수 있습니다. 토큰의 서명은 헤더, 페이로드, 비밀 키를 사용하여 생성되며, 서버는 이 서명을 통해 토큰의 유효성을 검증합니다.

반면, OAuth(Open Authorization)는 사용자의 인증과 권한 부여를 위한 프로토콜입니다. 주로 사용자가 다른 웹 사이트나 애플리케이션에 로그인할 때 사용됩니다. OAuth는 클라이언트 애플리케이션이 자원에 접근하기 위해 사용자의 동의를 얻고, 제한된 액세스 토큰을 발급받아 사용합니다. 보통 Bearer token을 발급합니다.

OAuth Token은 사용자의 중요한 정보를 담고 있지 않고 일종의 랜덤한 문자열입니다. 단지 OAuth를 사용하는 인증 서버에서 사용자 정보를 가리키고 있는 포인터라고 생각하면 된다.

반면,JWT 토큰은 헤더,페이로드,서명으로 구성되어 있고 페이로드에는 사용자 정보 등 다양한 정보가 담고 있는 토큰이다.

요약하자면, JWT는 클라이언트와 서버 간의 인증을 처리하기 위한 토큰이고, 토큰 자체에 정보를 포함합니다. 반면, OAuth는 사용자의 인증과 권한 부여를 위한 프로토콜로, 클라이언트가 사용자의 동의를 얻어 제한된 액세스 토큰을 발급받아 자원에 접근합니다.

1개의 댓글

comment-user-thumbnail
2023년 7월 19일

좋은 글 잘 읽었습니다, 감사합니다.

답글 달기