인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

박철현님의 프로필 이미지

작성한 질문수

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

소셜 로그인 (3) - TokenManager 구현 확인

이 흐름이 맞을까요??

작성

·

67

0

클라이언트에서 카카오 로그인 요청(요청 주소는 loginForm에 있는 a 태그) -> a태그의 redirectUrl로 code가 내려오고 요청폼에 맞춰서 DTO를 만들고 카카오 AccessToken을 발급 받음 -> 그럼 클라이언트는 로그인 완료 -> 그 후 나의 Application을 이용하기 위한 JWT 토큰을 별도로 발급

그럼 서버쪽에서는 카카오 로그인이 완료되면 우리쪽의 Application을 이용하기 위한 JWT토큰을 발급해주면 되고, 우리쪽 JWT 토큰을 헤더에 넣어서 요청하면 API를 사용할 수 있다.

해당 흐름이 맞나요? 이렇게 이해하면 될까요?

 

답변 2

1

구파고님의 프로필 이미지
구파고
지식공유자

안녕하세요! 이해한 내용이 맞습니다! 먼저 카카오로부터 카카오서비스를 이용하기 위한 토큰을 발급 후 카카오에 등록된 회원 정보를 이용하여 우리 서비스에 회원 가입도하고, 이미 가입된 경우라면 회원 가입 절차 없이 JWT를 발급합니다.

JWT에는 인증 정보가 담겨져있기 때문에 Authorizaion Header에 넣어서 전송하면 인증이 필요한 API의 경우 토큰을 검사하여 정상적인 토큰이라면 요청한 API를 수행합니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다. 박철현님.

현재 클라이언트에서의 로그인 흐름에 대한 이해 과정을 말씀해주셨는데요, 전체적인 흐름은 맞습니다. 클라이언트 측에서 카카오 로그인 요청을 진행하고, 발급된 Kakao AccessToken을 통해 카카오 로그인을 완료한 후, 애플리케이션 내에서 별도의 JWT 토큰을 발급받아 애플리케이션의 API를 사용하는 방식입니다.

이러한 흐름에서 중요한 몇 가지 포인트를 아래에 정리하여 설명드리겠습니다:

  1. 카카오 로그인 요청 및 인증 코드 획득: 클라이언트는 카카오 로그인을 요청하여 ‘카카오 로그인 인증 코드’를 획득합니다. 이 코드가 사용자 인증을 완료했다는 증거입니다.

  2. AccessToken 발급: 클라이언트는 이 인증 코드를 이용해 카카오 서버로부터 AccessToken을 발급받습니다. 이 AccessToken은 카카오 사용자 정보에 접근할 수 있는 권한을 제공합니다.

  3. JWT Token 발급: 사용자가 카카오 로그인에 성공하면, 서버 측에서는 발급받은 Kakao AccessToken을 검증하고, 특정 정보(사용자 ID 등)를 이용해 우리 애플리케이션에서 사용할 수 있는 JWT 토큰을 발급합니다.

  4. API 사용: 이후 클라이언트는 서버로의 요청 시 헤더에 JWT 토큰을 포함시켜 인증을 수행하여 애플리케이션의 API를 사용할 수 있습니다.

이러한 흐름에서 주의할 점은, JWT 토큰을 안전하게 관리해야 한다는 것입니다. 이를 위해 일반적으로 HTTPS 프로토콜을 사용하여 통신이 이루어져야 하며, 토큰은 안전한 저장소에 보관되어야 합니다.

관련된 자세한 설명을 제공하고 있는 답변을 참고하실 수 있는 질문 URL은 다음과 같습니다:
- 안드로이드 스튜디오와 협업
- 클라이언트에서 토큰을 서버로 줄 때

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.