在 php 中我会做
if (isset($_COOKIE['user']) && $_COOKIE['user'] == $valueFromDb)
echo 'logged';
但是在 javascript 中我该如何检查呢?
谢谢
最佳答案
如果不向服务器发出请求,则没有可靠的方法来执行此操作,因为 session 可能在服务器端已过期。在一个项目中,我采用了以下不完美的方式:
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
}
}
});
关于javascript - 如何知道是否有人通过 javascript 登录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5450024/