【发布时间】:2011-01-28 04:03:37
【问题描述】:
我想将 HTTP 基本身份验证标头存储在身份验证 cookie 中,这样我就不必在后续请求中处理授权标头(我使用的是 jQuery):
authenticate: function(auth) {
var header = "Basic " + $.base64.encode(auth.username + ":" + auth.password);
document.cookie = "Authorization: " + header;
$.ajax({
type: "GET",
url: "http://someurl",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: auth.success,
error: auth.error
});
},
虽然这似乎适用于第一个登录的用户,但它不适用于浏览器会话中的任何其他用户,因为随后的授权标头被添加而不是被覆盖。我知道可以使用name=value 语法覆盖cookie,但这种语法不适用于授权标头。
新用户登录后,有没有办法摆脱旧的授权标头?
任何帮助将不胜感激。谢谢,杰霍
【问题讨论】:
-
你能改变服务器端的任何代码吗?您使用什么语言(PHP、python 等)?
-
服务器端是一个自托管(WebServiceHost)的wcf数据服务(用c#写的)。我是该主机的所有者,因此我可以对其进行更改 - 但我担心可能性有限。
标签: javascript basic-authentication