0

我使用 XMLHttpRequest 和 basic-auth 来访问应用程序接口。密码是临时的,是由其他请求生成的,所以它会在一段时间后过期。

但是浏览器(至少是 Firefox)继续使用旧的,失败并显示登录弹出窗口。如果我通过为带有 X-Requested-By 和错误密码的请求返回 403 来抑制弹出窗口,则 mozilla 永远不会尝试使用新密码(firebug 在请求中显示新密码,服务器接收旧密码)。

可以通过向用户名添加随机“盐”(并在服务器端剥离它)来避免问题,但是有没有更好的方法来强制 XMLHttpRequest 使用提供的密码而不是缓存?

4

1 回答 1

0

401 响应包括一个“身份验证域”,默认为服务器上的所有 URL(参见RFC 2617)。浏览器应为来自同一域的任何质询提供相同的凭据。

既然您已经生成了一个过期密码,为什么不简单地将它变成一个必须附加到每个请求的令牌呢?例如,用户名的 SHA1 哈希,可能带有时间戳。我假设您将使用它作为服务器上的密钥来检索用户的数据。

于 2009-07-21T15:04:29.770 回答