我正在开发一个可以使用两个HTTP请求标头字段对用户进行身份验证的Web应用程序:user
和role
。
使用公司的SSO服务,我想实现以下目标:
user --> SSO --> header(location: http://app, \
user : username, | --> application
role : rolename) /
基本上,我想从application
页面的SSO
重定向用户。 SSO页面是一个小的PHP脚本,它找到正确的用户名和角色,然后执行对header()函数的调用:
header('user: username');
header('role: rolename');
header('location: http://application/login');
问题是,在重定向期间似乎删除了字段user
和role
(我使用带有HTTP标头扩展名的Chrome来监控进程)。
此外,当我手动设置标题时(使用修改标题Chrome扩展程序),一切正常。所以我认为Web应用程序不是问题所在。
最后一件事:我不是网络应用程序的开发者,这是一种商业产品。所以,我无法修改应用程序本身。
非常感谢您提前寻求帮助:)
答案 0 :(得分:0)
简而言之:服务器无法控制客户端在下一个请求中发送的头。您正在设置的是响应标头,标头与服务器到客户端的响应一起使用。他们应该向客户提供信息。然后,客户端可能会或可能不会向服务器发出另一个请求,它自己只选择要发送的头。
唯一的“持久性”标头是cookie,这正是它们的目的。如果这不是一个选项,例如因为域名不同,则必须将信息作为查询参数传递到您要重定向到的URL中。
或者你需要通过AJAX完成所有事情,你可以使用Javascript自己控制发送的标题。
答案 1 :(得分:0)
无法在重定向上保留标头。 在SO上看到这个问题: