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

标签 javascript jquery

在 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/

相关文章:

jquery - Woocommerce 添加到购物车按钮缺失

jquery - ASP.NET MVC 5 不呈现 jQuery UI CSS 包

jquery spritefy 暂停和重新启动

javascript - 确认对话框取消后输入选中的属性不起作用

javascript - 在 d3js 中的力定向图的链接上显示工具提示

javascript - 在 Mocha/Chai 中测试被拒绝的 promise

javascript - 我怎样才能减少字符数

javascript - 如何在打印时隐藏按钮菜单?

javascript - 在已经有 onclick 事件的情况下使用 Fancybox jquery

javascript - jQuery 将元素的 attr 获取到数组中