Ответ 1
Используются ли signIn и signOut на одной странице? Div g-signin2 загружает и inits gapi.auth2, поэтому он должен работать до тех пор, пока они находятся на одной странице.
В случае, если signOut находится на отдельной странице, вы должны вручную загрузить и запустить библиотеку gapi.auth2.
Полный пример (вы должны заменить YOUR_CLIENT_ID своим фактическим client_id):
<html>
<head>
<meta name="google-signin-client_id" content="YOUR_CLIENT_ID">
</head>
<body>
<script>
function signOut() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
console.log('User signed out.');
});
}
function onLoad() {
gapi.load('auth2', function() {
gapi.auth2.init();
});
}
</script>
<a href="#" onclick="signOut();">Sign out</a>
<script src="https://apis.google.com/js/platform.js?onload=onLoad" async defer></script>
</body>
</html>