소셜 로그인 동작 원리
+-----------------+ +------------------------+ +------------------+
| | | | | |
| 사용자 | | 애플리케이션 | | 소셜 로그인 제공자 |
| | | | | (예: Google) |
+--------+--------+ +-----------+------------+ +--------+---------+
| | |
| 1. 로그인 버튼 클릭 | |
|---------------------------->| |
| | |
| | 2. 인증 요청 |
| |--------------------------->|
| | |
| | | 3. 사용자 로그인 및 승인
| | |<---------------------------|
| | |
| | 4. 인증 코드 수신 |
| |<---------------------------|
| | |
| | 5. 인증 코드 교환 |
| |---------------------------->
| | |
| | 6. 액세스 토큰 수신 |
| |<---------------------------|
| | |
| | 7. 사용자 정보 요청 |
| |---------------------------->
| | |
| | 8. 사용자 정보 수신 |
| |<---------------------------|
| | |
| 9. 사용자 로그인 완료 | |
|<----------------------------| |
| | |
+--------+--------+ +-----------+------------+ +--------+---------+
| | | | | |
| 사용자 | | 애플리케이션 | | 소셜 로그인 제공자 |
| | | | | (예: Google) |
+-----------------+ +------------------------+ +------------------+
- 사용자 로그인 요청: 사용자가 웹사이트나 애플리케이션에서 "소셜 로그인" 버튼을 클릭합니다 (예: "Login with Google", "Login with Facebook").
- 인증 요청: 애플리케이션은 소셜 로그인 제공자(예: Google, Facebook, Naver)에게 인증을 요청합니다. 이 요청에는 애플리케이션의 클라이언트 ID, 리다이렉트 URI 등이 포함됩니다.
- 사용자 승인: 사용자는 소셜 로그인 제공자의 로그인 페이지로 리디렉션됩니다. 사용자는 자신의 소셜 미디어 계정으로 로그인하고 애플리케이션이 자신의 정보에 접근하는 것을 승인합니다.
- 인증 코드 수신: 소셜 로그인 제공자는 인증 코드와 함께 사용자를 애플리케이션의 리다이렉트 URI로 리디렉션합니다.
- 인증 코드 교환: 애플리케이션은 인증 코드를 사용하여 소셜 로그인 제공자에게 액세스 토큰을 요청합니다. 이 요청에는 애플리케이션의 클라이언트 시크릿도 포함됩니다.
- 액세스 토큰 수신: 소셜 로그인 제공자는 액세스 토큰을 애플리케이션에 반환합니다. 이 토큰은 사용자의 리소스에 접근하는 데 사용됩니다.
- 사용자 정보 요청: 애플리케이션은 액세스 토큰을 사용하여 소셜 로그인 제공자에게 사용자 정보를 요청합니다.
- 사용자 정보 수신: 소셜 로그인 제공자는 사용자 정보를 애플리케이션에 반환합니다.
- 사용자 로그인 완료: 애플리케이션은 반환된 사용자 정보를 사용하여 사용자를 로그인 상태로 설정하고, 필요한 경우 새로운 사용자 계정을 생성합니다.