明凯博客

关注网站技术,一个特立独行的程序员

PHP中session过期跳转到登陆页面并跳出iframe框架的两个方法

最近在做lavarel中间件的时候,判断用户登录后操作超时,session过期后要重新登录,但是用的iframe,返回的登陆页总是在子框架中显示,这里提供两种方案去实现这种功能。

方法一:

一般使用中间件过滤用户是否登录,如果用户没有登陆则转向登陆页面,这时候可以使用return redirect(‘/admin/login’);

但当在页面上使用了iframe后,发现被重定向的只是父页面中的iframe区域,登陆页面内容显示在该区域中。
并且再次登陆后所有的页面又会全部展示到子页面中,还得重新刷新下页面来正确显示页面。

看看我以前写的代码:

    public function handle($request, Closure $next)
    {
        if(!Session::has('admin')){
             return redirect('/admin/login');
        }
        return $next($request);
    }

因为redirect没有target属性,但html页面和js中有,于是,当判断出用户没有访问权限时,我们可以在php中使用js来转向到真正的登录页面。

在中间件使用如下代码:

 
    public function handle($request, Closure $next)
    {
        if(!Session::has('admin')){
             return redirect('/ladmin/login');
            echo "";  
            echo "";  
            echo "";
            exit();
        }
        return $next($request);
    }


方法二:

在你想控制跳转的页面,比如login.php中的与之间加入以下代码:


, , ,

相关文章

1 条评论 “PHP中session过期跳转到登陆页面并跳出iframe框架的两个方法

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注