【问题标题】:asp.net core Jwt Tokenl SSL issuesasp.net 核心 Jwt Tokenl SSL 问题
【发布时间】:2019-04-24 05:15:43
【问题描述】:

我们在 docker swarm 中运行一些 aspnet 核心 API,并使用 nginx 作为反向代理服务器。

我们已经运行这个设置一段时间了,没有任何问题。然而最近我们添加了一个从letsencrypt获得的SSL证书。从那时起,我们注意到,在我们点击 /api/TokenAuth/Authenticate 端点并获得分配一个 Bearer 令牌后,如果我们尝试使用刚刚分配的令牌进行后续调用,调用有时会失败并且我们得到一个 302(它有效大约 40% 的时间)。似乎如果我们在一段时间后再次尝试使用相同的令牌,那么调用就会起作用。

奇怪的是,如果我们启用了 ssl(https),​​这似乎只是一个问题。

我无法在本地复制问题。它似乎只在将 api 部署到我们的 docker swarm 时出现(它运行 nginx 和 api 作为容器,nginx 处理 ssl 证书)。

有人知道问题可能是什么吗?在此之前有没有人经历过这样的事情可以为我指明正确的方向?

下面有两个控制台:上面的一个是它工作的例子,我得到了预期的结果。底部是失败时的响应。

【问题讨论】:

  • 看起来像“有缓存的东西”。所以我要检查的第一件事是请求是否到达您的应用程序。 (您的服务器或 nginx 是否以 302 响应?)。然后看起来好像您没有发送任何“无缓存”标头?

标签: docker nginx asp.net-core asp.net-core-2.0 docker-swarm


【解决方案1】:

我发现了问题。我们有 3 个 api 实例/副本设置为发行令牌。每台服务器上的服务器时间似乎都相差几秒钟。因此,如果发出令牌的服务器在处理后续请求的服务器之前,那么令牌还不是有效的。

【讨论】:

    猜你喜欢
    • 2016-11-02
    • 1970-01-01
    • 2020-08-07
    • 2017-02-09
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 2017-06-17
    • 2023-03-19
    相关资源
    最近更新 更多