Chrome基本身份验证和摘要身份验证问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Chrome基本身份验证和摘要身份验证问题相关的知识,希望对你有一定的参考价值。

我有一些问题,Chrome取消了一些HTTP请求,我怀疑缓存的身份验证数据是原因。让我首先写下一些关于我正在编写的应用程序的重要因素。

  1. 我有一段时间使用基本身份验证方案来保护我的Web应用程序中的多个服务和资源。
  2. 与此同时,我使用Chrome与我的主Google帐户完全同步,大量使用/测试应用程序。最常见的是我使用我的名字 - “lukasz” - 作为Basic Auth中的用户名。
  3. 最近我已将我的应用程序切换为使用摘要式身份验证。
  4. 现在,我正在制作的一些HTTP请求失败了status=failed没有明显的原因。它只发生在我使用用户“lukasz”时,如果我输入其他一些唯一的用户名 - 没有问题。

我在后端和前端到处查看,我找不到问题在我们的代码中。我每次都可以通过用户“lukasz”轻松地重现这一点。所以我将我的代码恢复为Basic Auth(虽然没有触及应用程序的其余部分)但问题已经消失。

这让我觉得缓存密码有问题。所以我清除了Chrome中的缓存,但这没有帮助。经过几个小时的分析后,我决定确保我正在运行新的Chrome实例,所以我重新安装了它(沿途删除了磁盘数据)。 TADAAA!问题消失了,我再也无法重现了。然后我将我的Google帐户与新安装的Chrome同步,过了一会儿,我的应用程序的请求又开始失败!所以我深入研究了这一点(清理磁盘中的配置文件数据并重做所有步骤),事实上,只要我的帐户与云同步,问题就会出现!

是的,我知道这听起来很狡猾。这听起来很荒谬。这听起来很愚蠢。但我几乎可以肯定,这两个问题在某种程度上是相关的(请求失败和帐户同步)。

我的想法是这样的:Chrome以某种方式记得我使用“lukasz / my-pass”与Basic Auth进行某些服务。在我切换到Digest Auth后,相同的凭证组合(lukasz / my-pass)现在表现得很有趣。也许在引擎盖下,Chrome仍然认为这是Basic Auth并在其他情况下取消请求时取消请求?

更新:我已经使用chrome://net-internals/进行了一些低级调试,看起来问题出在读取缓存条目时。这似乎证明了我最初的假设。我做了一些调查,发现了this article。显然总是在我的http响应中添加“Last-Modified”标题已经解决了Chrome中的问题(我在FF中仍然存在一些问题,但这不是主题)。但是,它仍然没有完全解决我的问题。为什么请求首先失败了?

答案

您可以尝试使用隐身模式,看看会发生什么。它可能会为您提供一些提示,而无需清除缓存或重新安装Chrome。

还可以看看How to clear basic authentication details in chrome

以上是关于Chrome基本身份验证和摘要身份验证问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 Java 进行基本和摘要式访问身份验证

摘要和基本身份验证有啥区别?

HTTPS 和摘要式身份验证

教程4 - 验证和权限

为啥在 Django 中需要基本或摘要式身份验证?

Ruby:摘要代理身份验证