Session IFrame和父帧会话处理

Session IFrame和父帧会话处理,session,iframe,page-refresh,Session,Iframe,Page Refresh,我有一个不包含会话超时的应用程序,我们不希望我们的用户每次访问站点时都必须登录,即使他们一直处于空闲状态。我们最近与一家外部供应商合作,提供了一些研究数据,我们正在i-frame中呈现这些数据。在iframe中会话到期后,供应商有一个30分钟的会话,要求用户重新登录供应商站点。正如我之前所说的,我们不想让最终用户多次登录 我提出的解决方案是,当最终用户会话在iframe中过期时,会有一个javascript调用: /if called from an iframe, refresh the co

我有一个不包含会话超时的应用程序,我们不希望我们的用户每次访问站点时都必须登录,即使他们一直处于空闲状态。我们最近与一家外部供应商合作,提供了一些研究数据,我们正在i-frame中呈现这些数据。在iframe中会话到期后,供应商有一个30分钟的会话,要求用户重新登录供应商站点。正如我之前所说的,我们不想让最终用户多次登录

我提出的解决方案是,当最终用户会话在iframe中过期时,会有一个javascript调用:

/if called from an iframe, refresh the containing window

if (self != top) {

  window.parent.location.href = window.parent.location.href;

} 
我在本地对此进行了测试,它可以工作,即父级和iframe都在同一个应用服务器上运行,但是当它部署在两个不同的域上时,父窗口和I-frame仍在不同的应用服务器上运行,它仍将用户发送到供应商的登录屏幕,如果我只需按“刷新”,就可以成功地重新登录,而无需提供凭据

有几个问题:

有没有其他人可以想出不同的方法来处理这个问题? 你知道为什么这可以在本地工作,但不能跨域工作吗?
我认为您需要从IFRAME内容更改父窗口的URL

父窗口的内容:

Iframe的内容:

<b>iframe starts here</b><br><br>
<iframe src='iframe1.html'></iframe>

<br><br>
<b>iframe ends here</b>

<script type="text/javascript">
    function change_parent_url(url)
    {
    document.location=url;
    }       
</script>
IFRAME content<br><br>

 <a href="javascript:parent.change_parent_url('http://yahoo.com');"> 
Click here to change parent URL </a>