我正在使用适用于 JavaScript 的 Google 登录客户端 API。我正在处理的网站有两个相关页面。它有一个登录页面,它有一个用户配置文件页面。登录页面上显然有一个 Google 登录按钮。您应该只有在登录后才能查看您的个人资料页面。当用户在未登录的情况下进入他们的个人资料页面时,应该将他们重定向到登录页面。
这是我尝试过但没有奏效的方法:
// This does not work because this event is only fired when the user logs in or logs out, but not when the user is already logged out.
gapi.auth2.init().isSignedIn.listen(function(state) {
if(!state) location.href = "/login/";
});
我也试过在脚本加载时检测用户的登录状态,但这也没有用。它总是重定向到登录页面,因为 Google API 永远无法在脚本加载完成时让用户登录。
此外,我尽量不在我的代码中使用 setInterval
或 setTimeout
,如果这是我唯一有效的选择,请通知我。
顺便说一句,我多次听说我可以在用户登录时设置一个变量,然后如果该变量为false
,则直接重定向到登录页面。我什么时候检查所述变量的值?这将不起作用,因为它需要我使用 setTimeout
设置特定的延迟。 Google 的加载时间可能会有很大差异,因此我不会使用它。
最佳答案
我发现您可以使用这个简单的表达式来返回 true
或 false
,具体取决于用户是否在您的网站上登录了 Google。
gapi.auth2.init().isSignedIn.get()
关于javascript - 您如何检测您是否已使用 Google 登录 API 注销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43402843/