Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-cloud-platform/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google cloud platform 如何防止谷歌云发布/订阅推送订阅发送旧令牌_Google Cloud Platform_Jwt_Google Cloud Pubsub - Fatal编程技术网

Google cloud platform 如何防止谷歌云发布/订阅推送订阅发送旧令牌

Google cloud platform 如何防止谷歌云发布/订阅推送订阅发送旧令牌,google-cloud-platform,jwt,google-cloud-pubsub,Google Cloud Platform,Jwt,Google Cloud Pubsub,我们正在使用带有身份验证的Google云发布/订阅推送订阅。 有时HTTPS调用包含旧令牌。 它们大约1小时前,这可能表示时区问题,但在端点返回401(未授权)后,将使用另一个大约半小时前的令牌重试调用 原则上,由于重试,系统可以工作,但我无法想象谷歌会用旧令牌发送请求 有人知道如何解决这个问题吗 例如: 来自接收端点的日志(GMT+1): JWT包含有效载荷: { "exp": 1578272235, "iat": 1578268635 } 推送请求中包含的JSON Web令牌最长可

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

原则上,由于重试,系统可以工作,但我无法想象谷歌会用旧令牌发送请求

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

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

JWT包含有效载荷:

{
  "exp": 1578272235,
  "iat": 1578268635
}

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


有关更多信息,请参阅此处有关使用JSON Web令牌的文档:

令牌有效期为3600秒。我不知道谷歌在什么时候刷新代币。我建议发布一个问题追踪器,以便谷歌能够进行调查:您如何确定代币已使用一小时?系统上的时间准确吗?需要更多关于系统逻辑的详细信息。令牌没有时区,它们是GMT。请参阅添加的示例:令牌从PubSub发送时已过期或接近过期时间。您的更新没有回答我的问题。此外,外部时间管理机构报告的时间是多少?可能存在GCP错误(打开问题跟踪项),但我怀疑您的系统存在时间问题。终结点日志确定令牌已过期。此时间与401错误的StackDriver日志时间相关。当然,很容易会有12秒的延迟,如示例中由延迟和时间错误组成,但这仍然提出了一个问题,为什么GCP会包含一个已过期(或几乎过期)的令牌。订户是否通过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