Googleのサインインを統合するための手順を正確に実行しました。
https://developers.google.com/identity/sign-in/web/sign-in#specify_your_apps_client_id
サインインは機能しますが、サインアウトすると次の行でjavascriptエラーが発生します。
var auth2 = gapi.auth2.getAuthInstance();
エラーは次のとおりです。
gapi.auth2未定義
指示に従って、Googleプラットフォームライブラリを含めます。
<script type='text/javascript' src='https://apis.google.com/js/platform.js' async defer></script>
なぜ機能しないのですか?
SignInとsignOutは同じページで使用されていますか? Div g-signin2は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>