如何防止Google云Pub/Sub推送订阅发送旧令牌

How to prevent Google Cloud Pub/Sub push subscriptions to send old tokens

我们正在使用 Google 云 Pub/Sub 带身份验证的推送订阅。 有时 HTTPS 调用包含旧令牌。 它们大约存在 1 小时,这可能表明存在时区问题,但在端点 returns 401(未授权)之后,将使用另一个令牌重试调用,大约半小时。

原则上,由于重试,系统可以正常工作,但我无法想象 Google 会发送带有旧令牌的请求。

有人知道如何解决这个问题吗?

示例: 来自接收端点 (GMT+1) 的日志:

2020-01-06 01:57:27.5975|ERROR|Google.Apis.Auth.InvalidJwtException: JWT has expired.

JWT 包含负载:

{
  "exp": 1578272235,
  "iat": 1578268635
}
"iat": 1578268635
GMT: Sunday 5. January 2020 23:57:15
Your time zone: mandag d. 6. januar 2020 kl. 00:57:15 GMT+01:00

"exp": 1578272235
GMT: Monday 6. January 2020 00:57:15
Your time zone: mandag d. 6. januar 2020 kl. 01:57:15 GMT+01:00

推送请求中包含的 JSON Web 令牌最长可达一个小时。 Cloud Pub/Sub 中可能存在导致令牌在到达推送端点之前过期的问题,目前正在调查中。

有关详细信息,请参阅此处有关使用 JSON Web 令牌的文档:https://cloud.google.com/pubsub/docs/push#using_json_web_tokens_jwts