我在一个网站上工作来管理我的公司用户。基本上它允许登录、注册、更改数据等。我做这个网站是因为我们想让每个产品的客户统一。如果我已经注册了某些产品,那么我可以登录到其他产品。
从某个产品站点到用户站点(或从用户站点到产品站点)的所有重定向都是通过 POST 进行的,因为如果有用户登录,则票证太长而无法使用 GET。这导致 302 结果与用于从其他系统访问的用户站点的 URL(具有所有需要的参数)以及在 200 与用户站点的正确页面之后。
假设我尝试进入某个需要身份验证的页面,我会得到以下结果:
- 获取 http://www.myDomain.com/somePageWhichNeedsAuthenticatedUser 401(未经授权)
- 发布http://users.myDomain.com/Access?parameters 302
- 获取 http://users.myDomain.com/Login 200
因此,在 Chrome 或 Safari 中,当我从登录页面点击返回按钮时,我将被重定向到 somePageWhichNeedsAuthentication。但是从 IE 或 Firefox 会重定向到访问页面或 somePageWhichNeedsAuthenticatedUser,我真的不知道,但其中任何一个页面都会重定向回登录页面,所以除非我快速点击两次按钮,否则它不会工作。
我该如何解决这个问题?
更新
做一些其他测试我发现了另一种情况:我尝试登录(不访问需要身份验证的某些页面)所以结果如下:
- 获取http://www.myDomain.com/Login 302
- 发布http://users.myDomain.com/Access?parameters 302
- 获取http://users.myDomain.com/Login 200
Chrome 和 Safari 再次完美。Firefox 正在重定向到http://www.myDomain.com/Login。最后,一旦您单击“登录”链接,IE 就会失败,因为它不允许状态 302 响应内容。所以我必须用 200 强制http://www.myDomain.com/Login的响应。这让 Firefox 做同样的事情(对于 IE 也一样)。
更新 2
这里有一个firefox的日志。由于打开了其他一些选项卡,因此在示例一之前有一些请求。我已经完成了第二个示例。产品域是http://localhost/MktWeb,用户域是http://usuarios2.nosis.com.ar。http://www.yourfilelink.com/get.php?fid=719269