identity_fn.AuthBlockingEvent is still missing auth_type and resource
還沒有人認領這個 Issue。
評估
研究方向
從 src/firebase_functions/identity_fn.py 中的 AuthBlockingEvent dataclass 開始,它旁邊是 #231 新增的欄位(event_type、email_type、sms_type)。依照連結的 Node 端 parseAuthEventContext 邏輯推導兩個新屬性:auth_type 根據 user_record 是否存在得出,resource 根據 tenant_id 與專案 ID 得出。完成的標準是重現片段不再拋出 AttributeError,且 identity_fn 的現有測試套件通過,並涵蓋租戶與非租戶兩種情況。
由索引模型根據 Issue 內容生成。
描述
Summary
#231 added event_type, email_type, and sms_type to identity_fn.AuthBlockingEvent (thanks!). Two properties from the blocking functions doc are still missing, so code written from the doc fails on Python:
| Doc property | Node firebase-functions |
Python firebase-functions |
|---|---|---|
authType |
authType: "USER" | "UNAUTHENTICATED" |
not present |
resource |
resource: { service, name } |
not present |
Repro
from firebase_functions import identity_fn
@identity_fn.before_user_signed_in()
def handle(event: identity_fn.AuthBlockingEvent):
event.auth_type # AttributeError
event.resource # AttributeError
Checked against the AuthBlockingEvent dataclass on main (identity_fn.py) and in 0.6.0.
Where the values come from
The Node SDK derives both from the blocking token rather than reading dedicated claims, so Python can do the same. From parseAuthEventContext:
authTypeis"USER"when the token has auser_record, otherwise"UNAUTHENTICATED".resource.serviceisidentitytoolkit.googleapis.com, andresource.nameisprojects/<project-id>/tenants/<tenant_id>when the token has atenant_id, otherwiseprojects/<project-id>.
Context
First reported in firebase/functions-samples#1129 and in #224, which #231 partly addressed. I'm closing the samples issue in favor of this one, since the fix belongs in the SDK. Until then, the tenant is available as event.data.tenant_id.
- 主要語言
- Python
- 星號
- 167
- 分支
- 36
- 平均合併
- 4 天 3 小時
- 30 天內合併 PR
- 1
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 沒有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
firebase/firebase-functions-python 的其他 Issue
-
HttpsError.__init__ does not pass message to super().__init__()可能已有人在做 @Aayush99910 今天認領。 未關閉
難度 1/5 1 小時以內 新手友好度 85/100
firebase/firebase-functions-python#314 · 1 則留言 ·
-
Add support for VPC direct connect可能已有人在做 @IzaakGough 於 105 天前認領。 未關閉feature-request
難度 4/5 3-5 天 新手友好度 48/100
firebase/firebase-functions-python#275 · 1 則留言 · 1 個 reaction ·
-
feature-request
難度 4/5 3-5 天 新手友好度 35/100
firebase/firebase-functions-python#271 · 3 則留言 ·
-
[Bug] stability_digest_payload_from_ce_payload fails with AttributeError: 'dict' object has no attribute 'split'可能重新可做 關聯的 PR 已關閉且未合併。 未關閉bug unable to reproduce
難度 3/5 1-2 天 新手友好度 55/100
firebase/firebase-functions-python#260 · 6 則留言 ·
-
feature-request
難度 5/5 一週以上 新手友好度 25/100
firebase/firebase-functions-python#249 · 2 則留言 ·
查看 firebase/firebase-functions-python 的全部 Issue
相似的 Issue
-
changelog investigate
難度 2/5 1-3 小時 新手友好度 62/100
ramnes/notion-sdk-py#409 ·
-
good first issue help wanted
難度 2/5 1-3 小時 新手友好度 72/100
lindicaphxag-tech/kaggle#28 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 62/100
BSData/horus-heresy-3rd-edition#3211 ·
維護者通常 1 天內回覆
-
bug needs-triage
難度 2/5 1-3 小時 新手友好度 70/100
維護者通常 1 天內回覆
-
bug tests
難度 2/5 1-3 小時 新手友好度 76/100
維護者通常 1 天內回覆