0

目前,我正在使用谷歌云服务对我的设备进行编程,作为物联网项目的一部分。

几乎一切都在工作,但不是全部。我为 Python 编辑了原始 MQTT 库,如果我将 JWT 令牌到期时间设置为少于 2 小时,它就开始正常工作

24 小时是 JWT 令牌的有效到期时间吗?或者我做错了什么?

我正在使用 Raspberry PI 3B+ 和 Python 3.6.7

我的 JWT 访问和刷新令牌与 Github 中 Google 库中的令牌相同。我的库仅在多个线程中运行它,以便我可以从同一设备创建多个连接。

编辑:我在函数中修改了这一行create_jwt...

'exp': datetime.datetime.utcnow() + datetime.timedelta(minute=20)

'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=12)
4

2 回答 2

2

此问题的一个可能原因是您的 Raspberry Pi 的时钟设置不正确。例如,系统时钟可能设置为本地时间而不是 UTC。确保运行date --utc返回正确的 UTC 时间。

于 2019-02-20T17:11:13.430 回答
1

是的,JWT 的最长生命周期是 24 小时(加上一点时钟偏差)。

这是文档页面的摘录:https ://cloud.google.com/iot/docs/how-tos/credentials/jwts

(“过期”):令牌停止有效时的时间戳,指定为自 1970 年 1 月 1 日 00:00:00 UTC 以来的秒数。令牌的最长生命周期为 24 小时 + skew。

于 2019-02-20T23:41:34.510 回答