JWT

heyjk2212·2023년 12월 6일
0

면접준비

목록 보기
1/13

Q. JWT에 대해 설명해주실 수 있을까요? 구체적으로 JWT를 어디서 처리하는지, 어떠한 방식으로 검증하는지, 재발급 방식과 주기는 어떻게 처리하는지, 다른 API 서비스 호출 시 어떻게 잡아서 인증 처리하는지 말씀해주시면 좋습니다.

JWT(JSON Web Token)란 무엇인가요?

JWT는 정보를 안전하게 전달하기 위한 토큰입니다. JWT는 Json Web Token의 약자로 인증에 필요한 정보들을 암호화시킨 토큰이다. 세션/쿠키 방식과 유사하게 사용자는 Access Token(JWT Token)을 HTTP header에 실어 서버로 보내게 된다. 사용자 인증에 필요한 모든 정보는 토큰 자체에 포함하기 때문에 별도의 인증 저장소가 필요없다는 장점이 있다.

구성: 헤더(알고리즘 및 유형), 페이로드(클레임 정보), 서명(무결성 확인)으로 구성됩니다.

JWT는 어디서 처리하고 검증하나요?

처리: 사용자가 로그인하면 서버에서 JWT를 생성하여 반환합니다.

검증: 클라이언트는 요청 시 JWT를 서버에 제출하고, 서버는 유효성을 검증하여 요청을 수락하거나 거부합니다.

JWT의 재발급 및 주기 관리는 어떻게 이루어지나요?

재발급: JWT의 만료 기간이 지나면, 클라이언트는 새로운 토큰을 요청하거나 서버에서 자동으로 재발급합니다.

주기 관리: 서버는 토큰의 만료 기간을 확인하고, 만료되면 새 토큰을 발급하여 사용자 세션을 유지합니다.

다른 API 서비스 호출 시 JWT는 어떻게 사용되나요?

인증: 다른 API 서비스 호출 시 JWT는 사용자 인증을 위해 사용됩니다. 사용자가 로그인 후 JWT를 받으면, 이 토큰은 API 서비스에 대한 인증 수단으로 사용됩니다.

HTTP 헤더에 JWT 포함

  • 클라이언트는 API를 호출할 때, HTTP 요청의 헤더에 JWT를 포함시킵니다. 주로 Authorization 헤더에 Bearer 스키마를 사용하여 JWT를 전달합니다.

  • JWT 검증: API 서버는 받은 JWT를 검증합니다. 이 과정에서 서버는 다음을 확인합니다.

    • 토큰의 유효성: 서명이 올바른지 확인하고 토큰이 만료되지 않았는지 확인합니다.

    • 사용자 권한 및 클레임: 토큰의 페이로드에서 사용자의 권한과 기타 정보를 확인하여 요청을 처리합니다.

  • 인증 및 권한 부여: JWT가 유효하고 사용자가 인증되면 API 서버는 해당 요청을 수행하고 사용자에게 권한이 있는 데이터 또는 서비스를 제공합니다.

References

JWT

Access Token과 Refresh Token

profile
She can do it, He can do it, Why not me?

0개의 댓글