1

有谁知道我可以在哪里阅读教程,或者知道如何创建一个内置警告的基于 Javascript 的会话超时,以及可选的这些功能:

  • 用户活动重置计时器
  • 与数据库交互(最后一次出现在等)
  • 如果不活动,它将注销用户(通过重定向到 logout.php 页面)
  • 在注销用户之前,它将显示一条弹出消息,询问他们是否要继续

不幸的是,我对 Javascript 不太了解。

4

2 回答 2

6

我不知道您的网站是如何完成的,但如果做得正确,您应该有一个登录会话和某种后端控制系统,如果先前的操作是在 X 分钟/小时前进行的,则该系统会拒绝任何操作并自动过期用户。如果你想实现一些客户端代码,你应该有一个javascript计时器,当过期时间即将结束时提醒用户,你也可以在过期时间到达后将用户重定向到主页或登录页面。这样,所有安全功能都在后端,javascript 仅作为显示行为的显示措施。

更新:

setInterval(function(){alert("Hey, your session is ending")},360000);

setInterval(function(){
    redirect();
},720000);

function redirect(){
    document.location = "../logout.php"
}

更新2:

setInterval(function(){
    logout();
},600000);

function logout(){
    if(confirm('Logout?'))
        redirect();
    else
        alert('OK! keeping you logged in')
}

function redirect(){
    document.location = "../logout.php"
}

带有此代码的每个页面都会在 10 分钟后询问用户是否要注销。这意味着您的会话不能自行过期,您必须将控制权留给用户

于 2012-07-18T10:44:17.150 回答
0

5 分钟后会话注销

<script type="text/javascript">
        var interval;
         $(document).on('mousemove', function () {
             clearInterval(interval);
             var coutdown = 5 * 60, $timer = $('.timer'); // After 5 minutes session expired  (mouse button click code)
             $timer.text(coutdown);
             interval = setInterval(function () {
                 $timer.text(--coutdown);

                 if (coutdown === 0) {

                     alert("Session expired. User successfully logged out.");
                     window.location = "UserLogin.php";
                 }

             }, 1000);
         }).mousemove();

         var interval;
                     $(document).on('keydown', function () {
             clearInterval(interval);
             var coutdown =5 * 60, $timer = $('.timer'); // After 5 minutes session expired (keyboard button press code)
             $timer.text(coutdown);
             interval = setInterval(function () {
                 $timer.text(--coutdown);

                 if (coutdown === 0) {

                     alert("Session expired User successfully logout.");
                     window.location = "UserLogin.php";
                 }

             }, 1000);
         }).mousemove();
    <script>



         <html>
            <div class="timer">
                 Time of session display on page 
            </div>
        </html>
于 2019-09-17T09:40:00.667 回答