• 카테고리

    질문 & 답변
  • 세부 분야

    백엔드

  • 해결 여부

    미해결

jwt에 관해 질문이 있습니다.

24.01.13 17:58 작성 조회수 236

0

좋은 강의 감사합니다.

강의를 모두 들었는데 궁금점이 생겨서 질문을 남기게 되었습니다.

1. postman으로 했을 때에는 JSON 타입으로 값을 넣어주고 이후의 요청에서는 헤더에 있는 토큰을 직접 넣어줬었는데 실제 웹에서 요청할 때에는 postman처럼 헤더를 넣지 못하니까 자동으로 넣어지게 되나요?

아니면 이거에 관련한 코드나 설정이 추가로 필요한가요?

2. 이전의 시큐리티에서 세션을 사용해서 OAuth 코드랑 jwt에서의 OAuth 코드는 다르다 하셨는데 jwt를 쓸 때에는 OAuth를 사용하지 않는 편인가요?

아니라면 세션과 약간 다르기는 하지만 비슷하게 코드를 짜면 jwt 로그인과 OAuth를 같이 사용할 수 있는지 궁금합니다!

답변 2

·

답변을 작성해보세요.

0

1. postman으로 했을 때에는 JSON 타입으로 값을 넣어주고 이후의 요청에서는 헤더에 있는 토큰을 직접 넣어줬었는데 실제 웹에서 요청할 때에는 postman처럼 헤더를 넣지 못하니까 자동으로 넣어지게 되나요

 

프론트 앤드 개발자가 넣어서 백엔드쪽으로 요청해줍니다. 백엔드는 그 부분에 대해서는 신경쓰지 않아도 됩니다.

프론트가 자바스크립트라면, 가령 React라면 직접 토큰을 브라우저에 저장했다가, 필요할때 브라우저에서 꺼내서 ajax 요청을 하게 됩니다.

 

프론트가 앱이여도 같은 방식입니다.

 

2번에 대한 답변은 OAuth를 사용하면, 클라이언트는 OAuth를 통해 인증을 하고, 코드를 발급받습니다. 해당 코드를 서버가 전송받아서 그 코드로 access token을 발급받은 뒤에, 그 access token을 버리고, 우리 서버만의 jwt를 만들어서 쓰는 방식을 사용합니다. 이 부분은 전반적인 이해가 있어야 코드로 구현이 가능합니다.

0

인프런 AI 인턴님의 프로필

인프런 AI 인턴

2024.01.14

안녕하세요, 인프런 AI 인턴입니다.

조찬희님의 질문에 답변 드리겠습니다.

  1. 실제 웹 환경에서는 Postman을 사용할 때처럼 요청 헤더에 JWT 토큰을 수동으로 넣는 일이 없습니다. 일반적으로 웹 애플리케이션이 서버에 요청을 보낼 때, JWT 토큰을 자동으로 헤더에 포함시키도록 설정해야 합니다. 이를 위해 웹 애플리케이션의 HTTP 클라이언트 라이브러리에서 인터셉터(interceptor)를 설정하여 모든 요청에 JWT 토큰을 첨부하거나, 로그인 후 토큰을 클라이언트 측에서 관리하여 요청 시마다 헤더에 추가하는 등의 작업이 필요합니다.

  2. JWT를 사용하는 경우에도 OAuth를 사용할 수 있습니다. OAuth는 사용자 인증 후에 인증 정보를 토큰 형태로 제공하는 프로토콜인데, 이 토큰을 JWT 형태로 발급받을 수 있습니다. 따라서 세션 기반이 아닌 JWT 기반의 인증 시스템에서도 OAuth를 사용하여 로그인하는 것이 가능합니다. OAuth2에 대한 자세한 내용은 Spring 공식 문서의 Spring Security OAuth2 섹션을 참조하시면 도움이 될 것입니다.

Spring Boot Reference Documentation v3.1.5 - Spring Security OAuth2
Spring Security project page

혹시 더 궁금한 점이 있다면, 언제든지 추가 질문을 남겨주세요.