我可以使用 Firebase 令牌 (JWT) 来识别过期日期超过 1 小时的用户吗?
Can i use a Firebase token (JWT) to identify a user with an expire date > than 1 hour?
我正在使用 Cloud Firestore for Firebase 来存储有关用 NodeJs 编写的 Rest API 服务的信息。
因此,对 Node 的每个请求都会向 Firebase 询问有关该服务的信息,并且首先,它会授权 请求。
我认为使用用户生成的 JWT 将是最好的解决方案,因为客户端只需在其请求中包含 JWT 即可授权自己。
一个Firebase JWT与生成它的用户的uid有关。
显然,会有一个控制面板,用户可以在其中使用 email/pw 登录并生成 JWT,然后 JWT 将包含在他的客户端系统中,例如像简单的 APIs 需要API 用于识别用户和工作的密钥。
所以,这个想法似乎很有效,但我注意到 Firebase JWT 在 仅 1 小时后过期!
用户必须每隔一小时登录一次控制面板,重新生成 JWT。这么不友好。
如何避免这个问题?如何让 JWT 过期超过 1 小时?
The maximum lifetime of a token is 24 hours + skew.
[...]
with a skew of up to 10 minutes.
这意味着您不能永远使用这些令牌,这是有道理的。
我查看了 custom tokens 并发现:
The time, in seconds since the UNIX epoch, at which the token expires. It can be a maximum of 3600 seconds later than the iat.
Note: this only controls the time when the custom token itself expires. But once you sign a user in using signInWithCustomToken(), they will remain signed in into the device until their session is invalidated or the user signs out.
也许您可以使用 signInWithCustomToken()
做一些事情,因为一旦登录,它只会在用户无效或注销时过期,但我认为最好的行动方案是寻找另一种方法。
我正在使用 Cloud Firestore for Firebase 来存储有关用 NodeJs 编写的 Rest API 服务的信息。
因此,对 Node 的每个请求都会向 Firebase 询问有关该服务的信息,并且首先,它会授权 请求。
我认为使用用户生成的 JWT 将是最好的解决方案,因为客户端只需在其请求中包含 JWT 即可授权自己。
一个Firebase JWT与生成它的用户的uid有关。 显然,会有一个控制面板,用户可以在其中使用 email/pw 登录并生成 JWT,然后 JWT 将包含在他的客户端系统中,例如像简单的 APIs 需要API 用于识别用户和工作的密钥。
所以,这个想法似乎很有效,但我注意到 Firebase JWT 在 仅 1 小时后过期! 用户必须每隔一小时登录一次控制面板,重新生成 JWT。这么不友好。
如何避免这个问题?如何让 JWT 过期超过 1 小时?
The maximum lifetime of a token is 24 hours + skew.
[...]
with a skew of up to 10 minutes.
这意味着您不能永远使用这些令牌,这是有道理的。
我查看了 custom tokens 并发现:
The time, in seconds since the UNIX epoch, at which the token expires. It can be a maximum of 3600 seconds later than the iat. Note: this only controls the time when the custom token itself expires. But once you sign a user in using signInWithCustomToken(), they will remain signed in into the device until their session is invalidated or the user signs out.
也许您可以使用 signInWithCustomToken()
做一些事情,因为一旦登录,它只会在用户无效或注销时过期,但我认为最好的行动方案是寻找另一种方法。