소셜로그인?
소셜 로그인(Social Login)은 웹 및 모바일 애플리케이션에서 사용자가 다른 웹 서비스나 소셜 미디어 플랫폼의 자격 증명(로그인 정보)을 사용하여 로그인할 수 있는 기술 또는 기능을 말합니다.
📌
왜 간편로그인이라고 부를까?
사용자가 새로운 웹 서비스나 애플리케이션에 가입하고 로그인할 때 일반적으로 요구되는 별도의 사용자 이름과 비밀번호를 기억할 필요 없이 다른 웹 서비스 계정을 활용하여 간편하게 로그인할 수 있도록 도와줍니다.
Ex) 카카오, 네이버, 페이스북 등등
🔎소셜로그인의 회원가입 흐름
- 사용자가 소셜 로그인을 선택하여 해당 플랫폼에서 제공하는 웹페이지에서 아이디와 비밀번호를 입력한다.
- 현재 회원가입을 진행하려는 플랫폼에 정보를 제공할 범위를 선택하고 동의를 받는다.
- 사용자가 동의를 마치면, 소셜 미디어 플랫폼은 인가 코드를 생성하고 클라이언트 어플리케이션으로 리다이렉트된다. 이때, 인가 코드는 request에 담아서 반환된다.
- 개발자는 인가 코드로 소셜 미디어 플랫폼에 접근하여 accessToken과 refreshToken을 발급받는다.(accessToken이 만료되면, refreshToken으로 토큰을 재발급 받음)
- 개발자는 accessToken으로 사용자가 이전에 동의한 정보들을 받아온 후 해당 플랫폼에 사용자의 정보를 저장하고 등록한다.
🔎소셜로그인의 로그인 흐름
- 사용자가 소셜 로그인을 선택하여 해당 플랫폼에서 제공하는 웹페이지에서 아이디와 비밀번호를 입력한다.
- 소셜 미디어 플랫폼은 인가 코드를 생성하고 클라이언트 어플리케이션으로 리다이렉트된다.
✔ 이때, 저는 일반 로그인과 소셜 로그인을 같이 쓰기 위해 (2)번이 끝났다면 인증을 마친 사용자이므로 제가 개발하는 플랫폼에서의 accessToken과 refreshToken을 발급하였습니다.
(+ accessToken, refreshToken은 FE가 가지고 있고 refreshToken은 Redis에 저장하여 사용했습니다. 해당, 로직은 어떻게 구현하느냐에 따라서 다를 수 있어서 정답은 없습니다!!)
🔎일반로그인
플랫폼에서의 아이디, 비밀번호를 입력한 후 일치하면, accessToken과 refreshToken을 발급했다.