Google plus 谷歌+;JavaScript API:如何检测用户登录状态?

Google plus 谷歌+;JavaScript API:如何检测用户登录状态?,google-plus,google-api-client,Google Plus,Google Api Client,我已经部署了Google+登录按钮,现在我必须提供注销按钮,在此之前,我需要知道用户是否仍在登录,然后我可以显示或隐藏此按钮 我找到了以下文档:gapi.auth.checkSessionState(sessionParams,callback): 有人能演示一下如何使用它吗 非常感谢。如果已添加“登录”按钮,则无需使用单独的函数调用来确定用户的登录状态。登录按钮的回调将在登录时、页面加载时或用户的登录状态更改时触发。页面加载触发器(即时模式)也将有助于指示用户是否是Google登录用户 请参

我已经部署了Google+登录按钮,现在我必须提供注销按钮,在此之前,我需要知道用户是否仍在登录,然后我可以显示或隐藏此按钮

我找到了以下文档:gapi.auth.checkSessionState(sessionParams,callback)

有人能演示一下如何使用它吗


非常感谢。

如果已添加“登录”按钮,则无需使用单独的函数调用来确定用户的登录状态。登录按钮的回调将在登录时、页面加载时或用户的登录状态更改时触发。页面加载触发器(即时模式)也将有助于指示用户是否是Google登录用户


请参阅,其中显示了可以检查的不同状态字段(谷歌登录、应用程序登录或注销)

这是一个如何使用它的示例:

gapi.auth.checkSessionState({client_id:'99999999999.apps.googleusercontent.com'}, signinCallback);
其中client_id是g+控制台上项目的id。siginCallback是我创建的用于检查状态的函数

需要注意的是,官方api文档中说:

如果参数为true,则提供的会话_状态仍然有效。如果参数为false,则该参数不再有效,应用程序应执行新的重新授权流,并将immediate设置为true,以获取最新的访问令牌或检测未授权或不存在的Google登录会话

但是当我收到checkSessionState的响应时,我在im注销时得到true值,在im登录时得到false值。我不知道文档中是否有错误,但您可以自己尝试

希望这对你有所帮助。 PD:我糟糕英语的借口来自:

如果将null传递给sessionParams.session_状态,则可以检查用户是否已登录到Google,无论他们之前是否已授权您的应用程序

因此,您的代码如下所示:

gapi.auth.checkSessionState({session_state: null}, function(isUserNotLoggedIn){
    if (isUserNotLoggedIn) {
    // do some stuff
    }
});
这将返回布尔值

使用而不使用API查看用户是否登录到Google+(或Google/Facebook/Twitter)的一个简单方法是尝试访问一个只有在登录后才能访问的资源。下面的代码试图加载一个用户需要通过身份验证才能访问的图像资源。默认情况下,html


如果您能提供指向您的报价来源的api文档的链接,那就太好了。这是可行的,但请注意返回值与您期望的相反!(如代码--
isUserNotLoggedIn
所示)
gapi.auth2.getAuthInstance().isSignedIn.get()
<img style="display:none;"
onload="function(){document.getElementById('signOutButton').style.visibility = 'hidden';}"
onerror="function(){document.getElementById('signOutButton').style.visibility = 'visible';}"
src="https://plus.google.com/up/?continue=https://www.google.com/intl/en/images/logos/accounts_logo.png&type=st&gpsrc=ogpy0"
/>