如何知道是否有人通过JavaScript登录?

在PHP我会做

if (isset($_COOKIE['user']) && $_COOKIE['user'] == $valueFromDb) echo 'logged'; 

但在javascript中如何检查它?

谢谢

没有向服务器发出请求就没有可靠的方法来执行此操作,因为会话可能已在服务器端过期。 在一个项目中,我做了以下不完美的方式:

 checkAuth() { var logged = (function() { var isLogged = null; $.ajax({ 'async': false, 'global': false, 'url': '/user/isLogged/', 'success': function(resp) { isLogged = (resp === "1"); } }); return isLogged; })(); return logged; } 

我说不完美,因为它会产生暂时锁定浏览器的同步请求。 它的优势在于checkAuth()可以从客户端应用程序的任何部分可靠地调用,因为它强制浏览器在继续执行JS代码之前等待结果,但这就是它。

替代的,异步(非锁定)方法是做这样的事情:

 $.ajax({ 'url': '/user/isLogged/', 'success': function(resp) { if(resp === "1") { // do your thing here, no need // for async: false } } }); 

当您想知道用户是否登录页面以执行某种类型的特殊操作时,我通常会使用带有在js上检查的特殊名称的隐藏输入。 如果用户已登录,则将其放在母版页或类似内容上,然后在js中检查是否存在以了解用户是否已记录。

就像是:

   

您正在将服务器端处理(php)与客户端处理(javascript)混合在一起。 在客户端,除非服务器以某种特定于框架的方式提供,否则此信息不存在。

是。 看看这个问题: 用jQuery创建,读取和删除cookie

一个插件,让你更容易: http : //plugins.jquery.com/project/cookie