在jquery ajax中强制用户注销

Force User Logout in jquery ajax

本文关键字:用户注销 jquery ajax      更新时间:2023-09-26

我试图在关闭浏览器之前强制用户从系统注销。下面是我只能想出的代码。

 <script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script type="text/javascript">
        $(window).bind('beforeunload', function () {
            return 'Please LogOut';
        });
    </script>

我想做下面这样的事情。显示一个确认框,如果用户按下OK,则进行ajax调用。

我尝试了下面的代码,但即使是确认框也没有出现。

<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script>
    <script type="text/javascript">
        $(window).bind('beforeunload', function () {
            var x;
            var r = confirm("Please LogOut");
            if (r == true) {
                x = "LogOut";
                var url = "/User/logOut/";
                  $.ajax({
                    url: url,
                    data: { UserID: 1},
                    cache: false,
                    type: "POST",
                    success: function (data) {
                    },
                    error: function (reponse) {
                        alert("error : " + reponse);
                    }
                });
            }
            else {
                x = "Stay On Page!";
            }
        });
    </script>

我们尝试过类似的方法,但您无法如此容易地检测到用户何时关闭浏览器。

最简单的方法是使用会话作为用户访问。这意味着,在每次调用时,客户端应该发送一些令牌,服务器端应该检查它。该令牌保存在客户端的cookie/存储中(会话存储,但它只能在选项卡上作为会话使用),一旦用户关闭窗口/tab,它就会过期。

当然,您的服务器端应该支持会话。对于令牌发送,我建议使用授权头,因为它可以在大多数开发平台上使用,如果你计划在未来某个时候从js扩展到例如android平台。