M. *_*hak 11 python google-authentication firebase
每当我跑步时
from firebase_admin import auth
auth.verify_id_token(firebase_auth_token)
Run Code Online (Sandbox Code Playgroud)
它抛出以下错误:
Token used too early, 1650302066 < 1650302067. Check that your computer's clock is set correctly.
Run Code Online (Sandbox Code Playgroud)
我知道底层的 google auth API 确实会检查令牌的时间,但是如此处所述, 应该存在 10 秒的时钟偏差。显然,我的服务器时间晚了 1 秒,但是运行仍然失败,即使这远低于允许的 10 秒偏差。有没有办法来解决这个问题?
Fra*_*ank 12
这是 firebase_admin.verify_id_token 验证令牌的方式:
verified_claims = google.oauth2.id_token.verify_token(
token,
request=request,
audience=self.project_id,
certs_url=self.cert_url)
Run Code Online (Sandbox Code Playgroud)
这是 google.oauth2.id_token.verify_token(...) 的定义
def verify_token(
id_token,
request,
audience=None,
certs_url=_GOOGLE_OAUTH2_CERTS_URL,
clock_skew_in_seconds=0,
):
Run Code Online (Sandbox Code Playgroud)
如您所见,函数 verify_token 允许指定“clock_skew_in_seconds”,但 firebase_admin 函数不会传递它,因此使用默认值 0,并且由于您的服务器时钟关闭了 1 秒,verify_token 中的检查失败。
我认为这是 firebase_admin.verify_id_token 中的一个错误,也许您可以针对 firebase admin SDK 提出问题,但除此之外,您只能确保您的时钟准确或显示的时间早于实际时间
编辑:
实际上,我在 GitHub 上为 firebase/firebase-admin-Python 打开了一个问题,并创建了一个相应的拉取请求,因为我已经查看了所有源文件......
如果合并拉取请求,则服务器的时钟最多允许偏差一分钟。
归档时间: |
|
查看次数: |
4472 次 |
最近记录: |