<script src="https://apis.google.com/js/platform.js" async defer></script>
google-signin-client_id
메타 요소에 적어준다.<meta name="google-signin-client_id" content="YOUR_CLIENT_ID.apps.googleusercontent.com">
<div class="g-signin2" data-onsuccess="onSignIn"></div>
getBasicProfile()
을 이용한다.function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
console.log('ID: ' + profile.getId()); // Do not send to your backend! Use an ID token instead.
console.log('Name: ' + profile.getName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present.
}
GoogleAuth.signOut()
을 호출해 onclick
이벤트에 걸어 놓자.<a href="#" onclick="signOut();">Sign out</a>
<script>
function signOut() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
console.log('User signed out.');
});
}
</script>
백엔드 서버와 통신하는 Google Sign-In을 사용하기 위해서는 현재 서버에 로그인한 유저를 확인시켜줄 필요가 있다. 안전하게 하기 위해서는 유저가 성공적으로 로그인한 후에 user의 토큰을 HTTPS를 사용하는 내 서버에 보내주어야 한다. 그러면 서버에서 그 토큰의 무결성을 확인하고 새 계정을 만들기 위해 토큰에 포함된 유저의 정보를 사용할 수 있다.
function onSignIn(googleUser) {
var id_token = googleUser.getAuthResponse().id_token;
...
}
var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://yourbackend.example.com/tokensignin');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
console.log('Signed in as: ' + xhr.responseText);
};
xhr.send('idtoken=' + id_token);