구글 로그인 체크

최정은·2022년 2월 24일
1

Web

목록 보기
6/7

브라우저에 구글 계정이 로그인 되어 있는지 아닌지를 확인하기 위한 작업.
아래와 같은 코드로 구현했다.

window.gapi.load('auth2', function() {
	//맨 처음 초기화를 해야만 그 다음 작업을 진행할 수 있다. 
	window.gapi.auth2
  .init({
    client_id: googleClientId, //필수
  })
  .then(() => {
    let auth2 = window.gapi.auth2.getAuthInstance();

		// 로그인 되어 있을 경우 true, 아닐 경우는 false이다.(에러일 경우도 포함)
		let isSingedIn = auth2.isSignedIn.get();
  })
});

window.gapi.load

auth2 라이브러리를 로드한다.

window.gapi.load('auth2', function() {
	//window.gapi.init or 다른 api 작업을 진행한다. 
});

window.gapi.auth2.init

GoogleAuth 개체를 초기화한다.

window.gapi.auth2.init({
	client_id: 'CLIENT_ID.apps.googleusercontent.com', //필수 값
})

나머지 인터페이스는 여기서..

https://developers.google.com/identity/sign-in/web/reference#gapiauth2clientconfig

window.gapi.auth2.getAuthInstance()

GoogleAuth 개체를 반환한다. 이 때 gapi.auth2.init()으로 GoogleAuth 개체를 초기화를 해야한다.

const auth = window.gapi.auth2.getAuthInstance();

GoogleAuth.isSignedIn.get()

사용자가 구글 로그인이 되어 있는지 확인하는 함수이다.

로그인 되어 있으면 true

로그인이 되어 있지 않거나 GoogleAuth 개체가 초기화가 되지 않을 경우 false를 반환한다.

브라우저별 이슈

  • Safari
    : 환경설정 > 개인 정보 보호 : 크로스 사이트 추적 방지 해제를 해야 구글 로그인이 되어 있을때 반환값이 true가 된다.
    크로스 사이트 추적 방지가 체크되어 있을 경우 브라우저에서 구글 로그인이 되어 있어도 GoogleAuth.isSignedIn.get() 값이 false 값으로 return 되었다.
    https://github.com/google/google-api-javascript-client/issues/589

0개의 댓글