1

如何使用 jQuery 或 javascript 在不单击注销按钮的情况下识别用户未注销。

在这里,当用户在浏览器中按下后退按钮返回上一页时未注销时,我需要出现注销按钮。

这是我的注销按钮:

<a id="webviewbtn" href="#"><img src="img/logout.png" style="float:right;" /></a>

4

2 回答 2

1

我更喜欢一种不需要异步调用服务器的方法来节省资源。

登录后,您的系统将设置一个带有会话 ID 的 cookie。您还可以通过您的后端设置一个 cookie,该 cookie 可用于确定客户是否登录。

//using php here
setcookie('customer',1); //customer is logged in

setcookie('customer',0); //customer is not logged in

在您的前端,您可以使用 jquery/javascript 来检查该状态。我假设在这里你有 jquery cookie 插件包括https://github.com/carhartl/jquery-cookie

if ( $.cookie('customer') === 1 ){
    $('#webviewbtn').show(); //show logout button
}
else{
    $('#webviewbtn').hide(); //no logout button needed
}

在那个场景中,“客户”cookie 与会话 cookie 具有相同的域和相同的持续时间,这一点非常重要。否则,回头客可能会将客户 cookie 设置为 1,但会话 cookie 已经过期。此外,从客户调用的所有操作都需要在后端进行验证,以验证状态 customer === 1 在那里仍然有效。否则你有一个很大的安全问题,因为每个人都可以将该 cookie 设置为 1 :)

于 2012-04-07T18:24:56.283 回答
0

在您的网页上执行任何形式的操作时,请使用异步或同步的方法调用验证用户的 Web 服务。

如果服务器返回正常消息,则用户仍将登录。此操作可以在呈现注销按钮或用户执行任何其他“重要”操作时执行。

您还可以将信息存储在具有过期时间的 cookie 中。然后可以进行管理,如果您在浏览器中按下后退按钮,则 cookie 被清除并且用户被注销或您拥有什么。

这种实现有很多可能性,不幸的是,我这里没有“最佳实践”案例可以提供给您。

于 2012-04-05T09:14:57.017 回答