0

我正在使用带有摘要式身份验证的 Restlet。效果很好。除了我想通过避免在第一次发回 401 时弹出浏览器的身份验证对话框来使其对 ajax/Javascript 更加友好。

这就是我认为可行的方法:

  1. 使用文本字段获得的用户/通行证并存储在 javascript 对象中。
  2. Ajax 调用以保护资源。
  3. Reselt 发送回带有 Digest Auth 信息的非 401 代码(例如 406)。
  4. Javascript 捕获代码,将请求/用户/密码打包成哈希,发送到 restlet。

a) 上述方法可行吗?

b) 如何在 Restlet 中使用 Digest 发送不同的状态码?

4

1 回答 1

1

是的,您必须返回非 401 响应,因为您无法更改浏览器行为,因为浏览器将始终显示弹出窗口。

另请参阅如何防止浏览器调用基本身份验证弹出窗口并使用 Jquery 处理 401 错误?

您可以通过修改/覆盖 DigestAuthenticator 并设置不同的响应来更改响应,或者使用将检测 401 并将其切换到另一个状态的过滤器。

于 2013-04-06T20:58:57.930 回答