웹 및 모바일 애플리케이션에서 사용자의 인증 및 인가를 위한 프로토콜
제3자 애플리케이션이 사용자의 인증 정보를 안전하게 관리하고, 사용자의 동의를 획득하여 사용자의 리소스에 대한 접근 권한을 얻을 수 있게 해줌
사용자가 자신의 소셜 미디어 계정이나 다른 온라인 서비스의 계정을 사용하여 다른 애플리케이션에 로그인하거나, 애플리케이션이 사용자의 데이터에 접근하는 권한을 부여할 때 자주 사용
(예를 들어, 사용자가 자신의 Google 계정을 사용하여 다른 앱에 로그인하거나, 페이스북 계정으로 다른 앱에 접근 권한을 부여하는 것)
사용자의 비밀번호를 제3자 애플리케이션에 노출하지 않고, 인증 및 인가를 처리하기 위해 토큰 기반의 인증 방식을 사용
일반적으로 액세스 토큰(access token)과 리프레시 토큰(refresh token)이 사용되며, 액세스 토큰은 제3자 애플리케이션이 사용자의 리소스에 접근하는 데 사용되고, 리프레시 토큰은 액세스 토큰의 만료 시간이 지났을 경우에 새로운 액세스 토큰을 발급받기 위해 사용됩니다.
엑세스 토큰을 발급해줘서 인가 해주는 방식
인증, 권한 부여, 정보를 안전하게 전송하기 위해 사용(token자체)
(예를 들어, 사용자가 로그인할 때 JWT가 발행되며, 발행된 JWT는 인증된 사용자를 식별하고, 다른 서비스에서도 권한 부여를 통해 해당 사용자에게 서비스 제공 가능)
크게 세 부분으로 구성되어 있음
JWT는 HTTP 헤더에 담겨 전송되며, 서버에서는 이를 검증하여 인증을 수행합니다.
서버의 데이터베이스에 저장된 세션 정보를 사용하지 않고, 간편하고 안전하게 인증을 수행할 수 있습니다.