![](/img/trans.png)
[英]What is this http parameter in verify_id_token() of google-api-python-client?
[英]Token used too early error thrown by firebase_admin auth's verify_id_token method
每當我跑步
from firebase_admin import auth
auth.verify_id_token(firebase_auth_token)
它拋出以下錯誤:
Token used too early, 1650302066 < 1650302067. Check that your computer's clock is set correctly.
我知道底層的 google auth API 確實會檢查令牌的時間,但是如此處所述,應該有 10 秒的時鍾偏差。 顯然,我的服務器時間減少了 1 秒,但是運行它仍然失敗,即使這遠低於允許的 10 秒偏差。 有沒有辦法來解決這個問題?
這是 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)
這是 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,
):
如您所見,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 打開了一個問題,並創建了一個相應的拉取請求,因為無論如何我已經查看了所有源文件......
如果合並拉取請求,則允許服務器的時鍾最多延遲一分鍾。
不是永久性修復,但您也可以通過將本地時鍾時間推遲 15-30 秒來更改本地時鍾時間並解決此問題。 希望谷歌提供更好的解決方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.