XMLHttpRequest,基本身份验证和过期密码

时间:2009-07-21 14:37:44

标签: http xmlhttprequest basic-authentication

我使用XMLHttpRequest和basic-auth来访问应用程序界面。密码是temorary,由其他请求生成,因此它会在一段时间后过期。

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

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

1 个答案:

答案 0 :(得分:0)

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

由于您已经生成过期密码,为什么不简单地将其转换为必须附加到每个请求的令牌?例如,用户名的SHA1哈希值,可能用时间戳加盐。我假设您将此作为服务器上的密钥用于检索用户的数据。