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

时间:2013-05-21 14:26:26

标签: google-chrome authentication basic-authentication digest-authentication

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

  1. 我在一段时间内使用基本身份验证计划来保护我的网络应用中的多项服务和资源。
  2. 与此同时,我使用Chrome与我的主Google帐户完全同步,大量使用/测试应用程序。最常见的是我使用我的名字 - “lukasz” - 作为Basic Auth。
  3. 中的用户名
  4. 最近,我已将我的应用程序切换为使用摘要式身份验证
  5. 现在,我正在制作的一些HTTP请求因status=failed失败而没有明显的原因。它只发生在我使用用户“lukasz”时,如果我输入其他一些唯一的用户名 - 没有问题。
  6. 我在后端和前端到处查看,我找不到问题在我们的代码中。我每次都可以通过用户“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中仍然存在一些问题,但这不是主题)。 但是,它仍然没有完全解决我的问题。为什么请求首先失败了?

1 个答案:

答案 0 :(得分:0)

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

另请查看How to clear basic authentication details in chrome