我正在使用JavaScript的谷歌登录客户端应用程序接口。我正在工作的网站有两个相关的页面。它有一个登录页面,还有一个用户配置文件页面。登录页面上显然有一个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的加载时间可能有很大的不同,所以我不打算使用它。
https://stackoverflow.com/questions/43402843
复制相似问题