通过在 L5 中点击浏览器上的后退按钮来防止注销后再次登录?

Posted

技术标签:

【中文标题】通过在 L5 中点击浏览器上的后退按钮来防止注销后再次登录?【英文标题】:Prevent Back Login After Logout by hitting the Back button on Browser in L5? 【发布时间】:2015-06-26 17:35:32 【问题描述】:

我的问题是当我已经注销时我想做,如果我点击浏览器上的返回按钮它永远不会返回管理主页。

现在,当我单击返回按钮时,它会显示管理员机密页面,但是当我刷新页面时,它会返回登录页面。

我解决了它在 Laravel 4.2 上的 filter.php 中编写代码

App::after(function($request, $response)

 $response->headers->set('Cache-Control','nocache, no-store, max-age=0, must-revalidate');
$response->headers->set('Pragma','no-cache');
$response->headers->set('Expires','Fri, 01 Jan 1990 00:00:00 GMT');
);

但是现在如何

【问题讨论】:

【参考方案1】:

将此行保留在登录页面的顶部。这将清除缓存并防止返回页面(pabel)

<?php echo
header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
header('Content-Type: text/html');?>

【讨论】:

效果很好。谢谢【参考方案2】:

这对我有用:

将此javascript代码放在登录页面的末尾,这样您就无法返回,然后一旦系统外部无法访问之前的页面

 <script>
    window.onload = function () 
        if (typeof history.pushState === "function") 
            history.pushState("jibberish", null, null);
            window.onpopstate = function () 
                history.pushState('newjibberish', null, null);
            ;
         else 
            var ignoreHashChange = true;
            window.onhashchange = function () 
                if (!ignoreHashChange) 
                    ignoreHashChange = true;
                    window.location.hash = Math.random();
                 else 
                    ignoreHashChange = false;   
                
            ;
        
    
 </script>

【讨论】:

您能解释一下您的答案如何解决问题中的问题吗?仅代码的答案不是很有用,尤其是对于偶然发现这篇文章的更多读者。 您必须在上下文中才能理解该地方对我有用的代码,并输入我的源代码,所以不明白问题是什么......它只是复制并粘贴代码...... *** 不仅仅是复制+粘贴人们在回答问题时提供给您的代码,它还(而且主要是)学习如何做您以前不知道的事情。这就是让我们变得更好的原因,了解问题是什么以及给定的答案如何解决它。无论如何,我看到你添加了一些细节,这是向前迈出的一步。 我只是想帮助老兄,让人们来决定是不是错 :-) Cristik 有美好的一天! 我还尝试帮助您改进您的答案,详细的答案可能会比仅代码的答案获得更多的选票。你也有美好的一天。【参考方案3】:
<script>
    window.onload = function () 
        if (typeof history.pushState === "function") 
            history.pushState("jibberish", null, null);
            window.onpopstate = function () 
                history.pushState('newjibberish', null, null);
            ;
         else 
            var ignoreHashChange = true;
            window.onhashchange = function () 
                if (!ignoreHashChange) 
                    ignoreHashChange = true;
                    window.location.hash = Math.random();
                 else 
                    ignoreHashChange = false;   
                
            ;
        
    
 </script>

【讨论】:

正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center。

以上是关于通过在 L5 中点击浏览器上的后退按钮来防止注销后再次登录?的主要内容,如果未能解决你的问题,请参考以下文章

servlet会话,注销后,按下浏览器的后退按钮时,再次显示安全页面[重复]

防止用户在jsp中注销后返回[重复]

防止注销后的返回操作

当用户在 JSF 中注销后单击后退按钮时重定向到登录页面 [重复]

在用户注销后防止浏览器的后退按钮显示安全数据的最简单方法是啥?

注销后的 CodeIgniter 后退按钮