작성
·
51
0
로그인시도 -> Securty -> FILTER 사용자가 DB에있으면 OK -> JWT발급
이 흐름이 맞는지요..?
그리고 OAUTH2는
로그인시도 -> 카카오 코드받아서 인증을 받고 -> 토큰으로 사용자 정보를 가져와서 로그인 -> 로그인 후 jwt발급
근데 궁금한게 oauth2도 회원가입이 왜 필요한걸까요? 시큐리티때문이라고한다면 토큰으로 사용자정보를 가져오는걸로 db에서찾은거처럼 판단을 못하는지요
제가 헷갈리는게 jwt든 oauth2든db하고 관련이 어떻게잇는건지가 헷갈립니다 jwt도 db에서 사용자정보를 가져와서 담을수도있지않나요?
oauth2가 db에 사용자정보가 왜필요한지도 헷갈립니다 만약 사용자정보가 저장이 최초에 된다면 그다음부터는 그냥 oauth2로그인으로 안타는건지 그냥 security의 로그인을 타는건지 궁금합니다.
그리고 현재 강의에서는 시큐리티를 안쓰고
openfeign를 쓰셔서 코드를 받고 그 코드로 요청을 보내서 토큰을 받고 그 토큰으로 사용자정보를 받는걸로 이해를 했습니다. 시큐리티에서는 해당과정이 없는걸로 알고있는데 맞는지요
답변 2
0
안녕하세요. 질문 주신 내용 하나씩 답변드립니다.
1. 로그인시도 -> Securty -> FILTER 사용자가 DB에있으면 OK -> JWT발급 이 흐름이 맞는지요..?
흐름은 맞고 DB에 사용자 유무 관계없이 JWT는 항상 발급합니다. JWT를 우리가 제공하는 서비스를 사용하기 위한 일종의 열쇠같은 역할이라고 생각해주시면 됩니다.
해당 열쇠를 API 호출 시 같이 전달해야 인증이 필요한 API들을 사용할 수 있다고 봐주시면 됩니다.
2. oauth2 회원 가입 필요 이유
oauth 는 회원 가입할 때 필요한 정보들을 고객들이 직접 입력하지 않아도 쉽게 가져오고 추가로 필요한
정보들만 입력 받을 수 있다는 장점이 있습니다.(간편 회원 가입). 또한 카카오나 네이버같은 소셜 회원 가입 기능을
제공하는 곳에서 사용자에 대한 인증을 해주기 때문에 실명인증 등 따로 저희가 구현해야하는 기능들도 훨씬 적어집니다.
3. 회원 가입이 필요한 이유
소셜 로그인은 회원 가입 및 로그인을 좀 더 쉽게 도와주는 역할을 한다고 생각해주시면 됩니다.
사용자가 복잡한 회원 가입 과정을 거치지 않아도 쉽게 가입을 할 수 있는 것 입니다.
또한 저희 서비스에 가입을 시켜야 예를 들어 게시글을 쓴다고 했을 때 어떤 사용자가 게시글을
썼는지 회원 id를 지정해줄 수 있을테고, 일반적인 서비스라면 회원 DB를 직접 관리해서 이벤트를 한다고
했을 때 해당 회원의 아이디로 push알림을 보내준다던가 기타 기능 등을 구현할 수 있을 것 입니다.
또한 회원 가입을 하지 않는다면 현재 우리 서비스의 회원이 몇명인지에 대한 기본적인 것들도 알 수 없을 것 입니다.
4. 만약 사용자정보가 저장이 최초에 된다면 그다음부터는 그냥 oauth2로그인으로 안타는건지 그냥 security의 로그인을 타는건지 궁금합니다.
저장이 된 이후에도 소셜 로그인을 진행 시 회원 정보를 가져오고 해당 회원이 이미 가입이 되어있다면 로그인이 되었다는 의미로
JWT만 사용자한테 발급합니다. security 로그인이라는게 스프링 시큐리티를 말씀하시는거 같은데 현재 강의에서는 security 관련한 코드는 없습니다!
5. openfeign를 쓰셔서 코드를 받고 그 코드로 요청을 보내서 토큰을 받고 그 토큰으로 사용자정보를 받는걸로 이해를 했습니다.
시큐리티에서는 해당과정이 없는걸로 알고있는데 맞는지요
스프링 시큐리티에서는 아이디와 비밀번호를 입력하면 해당 정보를 세션을 통해서 관리합니다.
시큐리티만 사용한다면 위에 말씀하신게 맞고, 스프링 시큐리티와 oauth를 다 사용하신다면
JWT를 사용자한테 발급 후 사용자가 토큰을 보냈을 때 해당 토큰에 있는 정보를 통해서 세션에 현재 로그인한 사용자의 정보를 유지하는 등 함께 사용하는 방법도 있습니다.
정리가 많이 되셨다니 다행입니다! 인증쪽이 아무래도 복잡하고 어렵다보니 처음 보실 때 많이 헷갈리실겁니다. 저도 게을러져서 다른 강의는 준비하고 있는게 없긴한데 힘이나네요. 완강까지 화이팅입니다!
0
안녕하세요, 인프런 AI 인턴입니다. 성호님.
OAuth2와 데이터베이스(DB)의 관계, 그리고 JWT 발급 과정의 흐름에 대한 이해를 돕기 위해 설명드리겠습니다.
JWT와 보안 흐름:
OAuth2와 회원가입:
데이터베이스와의 관계:
이 강의에서의 OpenFeign과 Security:
관련된 질문과 답변 링크를 확인하시어 추가적인 정보를 얻어보세요:
- OAuth2 관련 토론
- 클라이언트와 서버 간 인증 흐름
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
구파고님 감사합니다 친절한 답변덕분에 많이 정리되었고 해소되었습니다. 강의끝까지 완강하고 더 공부해보겠습니다. 다른강의도 내어주시면 듣겠습니다