iframe集成 - 会话超时后将用户重定向到父站点登录页面

时间:2014-02-18 16:31:06

标签: php zend-framework redirect iframe zend-acl

我正在与另一个网站(abcxyz.com)合作,该网站通过iframe集成向其用户显示我的网站(mysite.com)的内容。用户登录abcxyz并且不知道abot mysite.com

EGS

所以到目前为止一切正常。现在,当会话在我的网站上到期时 - 用户会自动重定向到iframe中的登录页面(mysite.com) - 所以他们想要的是重定向到他们的登录页面。

我正在使用Zend Frame工作(PHP),这就是我想要解决的问题。

在我的Zend_Acl类中 - 在predispatch方法中 - 我正在检查引用者,如果它与abyxyz匹配 - 我正在重定向到他们的登录页面,我的

    if ($role == 'guest') 
    {               
        $referrer = $request->getHeader('referer');
        if (strpos($referrer,'abcxyz.com') !== false) {
            $redirector = new Zend_Controller_Action_Helper_Redirector();
            $redirector->gotoUrl('abcxyz.com/login.htm');
        }
        else {
            $request->setControllerName('user');
            $request->setActionName('login');
        }               
    }           

这似乎不起作用。它会不断将用户重定向到我的登录页面。

我在这里做错了还是有更好的方法来处理这个

请告诉我

由于

1 个答案:

答案 0 :(得分:0)

referer标题为not very reliable。即使它是,如果用户导航您的网站,可能是引用者是您自己的网站。

我不知道javascript是否是一个选项,但你可以检查当前页面是否与父页面匹配,如果不是(在你的情况下),则重定向。因此,如果条件不满足,您必须使用重定向到其他登录页面的脚本来提供登录页面。