본문 바로가기
프로그래밍 언어/C#

구글 api 사용하여 SNS 로그인 연동

by Nataliaa 2023. 9. 20.

 

구글 api 사용 등록

 

(1) 구글 개발자센터 : https://console.developers.google.com/
①    상단 좌측 ‘프로젝트 선택’ -> ‘새 프로젝트’ 

②    ‘API 및 서비스’ -> 라이브러리 ‘Google People API’ 사용 선택
③    ‘OAuth 동의 화면’ -> User Type ‘외부’ 선택 후 만들기 -> ‘범위 추가 또는 삭제’ -> People API 선택
④    ‘사용자 인증 정보’ -> ‘OAuth 클라이언트 ID’ 선택 -> 리다이렉션 URL 추가
⑤    클라이언트 ID, 비밀번호 복사
 

 

 

구글 로그인 프로세스


(1) 구글 로그인 요청 -> 사용자에게 권한 요청 및 동의 -> authrization code 요청 (GET)
https://accounts.google.com/o/oauth2/auth
?client_id={GoogleClientId}
&redirect_uri={GoogleRedirectUri}
&response_type=code
&scope={GoogleScopes}
&access_type=offline
&approval_prompt=force

*scope는 사용자에게 요청할 권한의 범위
*response_type는 권한 부여 동의 요청 시 포함되는 값으로 권한 부여 방식에 대한 설정
*access_type=offline는 사용자가 offline 상태일 때도 접근 가능 

(2) authrization code와 함께 승인된 redirect_uri로 리다이렉트

(3) authrization code를 가지고 구글에 access token을 요청 (POST)
https://oauth2.googleapis.com/token

*content-type : x-www-form-urlencoded
*body의 다음 정보를 입력하고 요청
code={code}
&client_id={GoogleClientId}
&client_secret={GoogleClientSecret}
&redirect_uri={GoogleRedirectUri}
&grant_type=authorization_code

(4) 발급 받은 access token을 가지고 사용자의 구글 계정에 대해 구글 api를 사용 (GET)
https://www.googleapis.com/oauth2/v1/userinfo
?access_token={access_token}


(5) 사용자의 구글 계정 정보가 담긴 JSON 문자열을 파싱
{
 "id": "사용자일련번호",
 "email": "이메일,
 "verified_email": true,
 "name": "sun ung yang"
}

(6) 구글 사용자 정보가 db내에 있는지 조회
(7) db내에 구글 사용자 정보가 있으면 로그인, 없다면 회원가입 페이지로 이동 

 
 
 
 
 
 
 
 
 

댓글