강의

멘토링

커뮤니티

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

bbcc8417님의 프로필 이미지
bbcc8417

작성한 질문수

한 입 크기로 잘라먹는 실전 프로젝트 - SNS 편

(6.5) 소셜 로그인 구현하기

소셜 로그인 질문

해결된 질문

작성

·

39

0

(6. 5) 소셜 로그인 구현하기 부분 보고 질문 드립니다.

 

  • 현재는 사전에 자신 Github의 OAuth 정보를 입력해야 로그인 되는 것으로 보입니다.

  • 혹시 이 정보를 사전에 등록하지 않고, github 로그인 버튼을 눌렀을 때, 아이디 비밀번호를 입력해, 그 때 인증을 유도하는 방법은 없나요??

  • 각기 다른 사용자들이 이 정보를 매번 등록할 수는 없지 않을까 싶어서 그렇습니다 !

답변 2

1

이정환 Winterlood님의 프로필 이미지
이정환 Winterlood
지식공유자

안녕하세요 bbcc8417님, 이정환입니다.

말씀하신 것처럼, 강의에서 구현한 방식은 사용자가 직접 GitHub 아이디와 비밀번호를 입력해서 로그인하도록 구성되어 있습니다. 즉, 로그인 버튼을 눌렀을 때 GitHub 인증 화면이 뜨고, 거기서 로그인하면 되는 구조입니다.

다만 사용하시는 브라우저에서 이미 GitHub에 로그인된 상태라면, 별도 로그인 없이 자동으로 인증이 완료되는 것처럼 보일 수 있습니다. 이건 브라우저에 저장된 세션 덕분이고, 로그인 로직 자체가 생략된 건 아닙니다.

 

또한 “자신의 OAuth 정보를 등록해야 로그인된다”는 부분은 조금 오해가 있는 것 같습니다. 강의에서는 OAuth 앱을 생성한 GitHub 계정의 정보를 통해 로그인하는 게 아니라, 실제 로그인은 로그인한 사용자 계정 기준으로 진행됩니다. OAuth 앱은 단순히 GitHub 로그인을 가능하게 만들어주는 도구일 뿐이며, 로그인 대상은 전혀 제한되지 않습니다.

결론적으로, 각기 다른 사용자들이 본인의 GitHub 계정으로 로그인하는 데에는 아무 문제가 없고, 별도로 OAuth 앱을 만들 필요도 없습니다.

0

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

소셜 로그인 구현과 관련된 질문을 주셔서 감사합니다. 소셜 로그인의 경우, OAuth2.0 프로토콜을 활용하여 사용자의 인증을 관리하는 방식입니다. 특히 GitHub와 같은 플랫폼은 Developers 앱 등록 과정에서 클라이언트 ID와 클라이언트 시크릿을 발급받아야 합니다.

소셜 로그인 기본 흐름

  1. OAuth 클라이언트 등록: 애플리케이션에서 이용할 OAuth 클라이언트 정보를 등록합니다. 이 과정 없이 각 사용자 개개인이 직접 OAuth 정보를 등록하게 할 수는 없습니다.

  2. 사용자 인증 흐름:

    • 사용자가 GitHub “로그인” 버튼을 클릭합니다.
    • GitHub 로그인 페이지가 나타나고, 사용자가 GitHub 계정으로 로그인합니다.
    • 사용자가 로그인을 완료하면 GitHub는 앱으로 리디렉션하고, 액세스 토큰을 제공하여 사용자를 인증합니다.

관련된 흐름 설명

  • 사용자들이 자신의 GitHub ID와 비밀번호를 직접 입력하여 로그인하는 방식은 OAuth의 원리에 맞지 않습니다. OAuth2.0는 사용자가 개인의 로그인 정보를 애플리케이션에 직접 제공하지 않고 해당 서비스에서 인증을 처리합니다.

  • 사전에 클라이언트 정보를 설정하는 것은 OAuth2.0가 작동하는 기본적인 원칙이며, 이를 기반으로 사용자의 인증 상태를 관리하게 됩니다.

이와 관련된 보다 자세한 정보는 유사한 사례에서 도움을 받을 수 있습니다:
- React로 로그인 부분 처리하는데 질문이 있습니다.
- 클라이언트 , 서버 컴포넌트의 사용 범위에 대한 질문

제 취지에 맞는 설명이나가 되셨으면 좋겠습니다. 기타 더 궁금한 점이 있으시면 언제든지 질문해주세요.

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

bbcc8417님의 프로필 이미지
bbcc8417

작성한 질문수

질문하기