0

很常见的是,当用户注销并按下后退按钮时,可能会进入 LoggedIn 用户页面 [最后一页],尽管他们将无法从那里做任何事情。但可以肯定的是,它可以被视为登录用户页面。

一种方法是确保浏览器不缓存页面,设置标题参数。但它可以工作或不能工作取决于浏览器。

当我看到 Facebook 时,不知何故他们实现了这个功能,一旦用户退出,后退按钮将始终要求登录。

我们如何使用 Javascript/jQuery 实现这一点?

4

2 回答 2

0

首先,您的服务器端脚本应该非常高效,以至于用户在注销后无法获取任何信息,例如过期 cookie、取消设置 $_SESSION 变量等。

我没有编写确切的脚本,但您需要编写如下内容:

<script>
<META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">
<META HTTP-EQUIV="Expires" content="-1">
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-STORE">
<script language="javascript" type="text/javascript" >
window.history.forward();
if(window.history.forward(1) != null)
      window.history.forward(1);
</script>

并在当前页面上显示警报框:

<script language="javascript" type = "text/javascript" >

   function preventBack()
   { 
     alert("You can't navigate to the previous page.You need to go again to the Login page!")
   }

    setTimeout("preventBack()", 0);

    window.onunload=function(){null};

</script>
于 2013-09-19T11:13:54.077 回答
-1

此方法取决于您如何在服务器端实现“isLoggedIn”功能。

但是假设您可以控制 cookie,并且您LoggedIn=true在用户登录时设置 cookie,并使用注销功能删除此 cookie。

然后就这么简单

if( ! readCookie( 'LoggedIn' ){
    alert( "you are not logged in" );
    document.location = "/your_login_page.html";
}

readCookie函数取自这里:http ://www.quirksmode.org/js/cookies.html#script

只要您在注销时删除会话,就可以对原因的会话 ID 执行相同的方法。

于 2013-09-19T12:02:31.913 回答