[FR] Support VERIFY_AND_CHANGE_EMAIL in generate_email_action_link (parity with firebase-admin-node)
@lahirumaramba がすでに取り組んでいます。
2026年5月5日 から。
評価
この issue はまだ評価されていません。
説明
Is your feature request related to a problem? Please describe.
The Identity Toolkit accounts:sendOobCode endpoint supports a VERIFY_AND_CHANGE_EMAIL request type that generates an OOB link which, when followed, both verifies the new address and updates the user's email. This is the recommended way to implement a secure "change email" flow — the verification link is sent to the current address so the flow isn't vulnerable to a stolen session setting a new email without the original owner's knowledge.
The Python Admin SDK cannot generate these links today. firebase_admin/_auth_utils.py declares:
VALID_EMAIL_ACTION_TYPES = set(['VERIFY_EMAIL', 'EMAIL_SIGNIN', 'PASSWORD_RESET'])
validate_action_type() rejects 'VERIFY_AND_CHANGE_EMAIL' before the request is made, and there is no new_email parameter on generate_email_action_link to carry the target address.
Describe the solution you'd like
Mirror the API added to firebase-admin-node in firebase/firebase-admin-node#1633 (merged April 2022):
- Add
'VERIFY_AND_CHANGE_EMAIL'toVALID_EMAIL_ACTION_TYPES. - Add an optional
new_email: str | None = Noneparameter togenerate_email_action_link(and the correspondingClient/authmodule methods), required whenaction_type == 'VERIFY_AND_CHANGE_EMAIL'. - Include
newEmailin theaccounts:sendOobCodepayload when set.
For reference, the Node signature is:
generateEmailActionLink(requestType, email, actionCodeSettings?, newEmail?)
Describe alternatives you've considered
Calling accounts:sendOobCode directly through Client._user_manager._make_request(...) with {"requestType": "VERIFY_AND_CHANGE_EMAIL", "email": ..., "newEmail": ..., "returnOobLink": True, ...}, reusing firebase_admin._user_mgt.encode_action_code_settings for ActionCodeSettings serialization. This works but depends on SDK internals (private _user_manager, private _make_request, private encode_action_code_settings) and bypasses the SDK's validation and error mapping.
Additional context
- Node SDK PR adding the same feature: firebase/firebase-admin-node#1633
- The Identity Toolkit
requestTypeenum already includesVERIFY_AND_CHANGE_EMAIL; the REST surface is unchanged. - Verified against
firebase-admin7.4.0.
- 主要言語
- Python
- スター
- 1.2k
- フォーク
- 359
- 平均マージ
- 5日 6分
- マージ済み PR(30日)
- 2
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
firebase/firebase-admin-python のほかの issue
-
api: remoteconfig
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
firebase/firebase-admin-python#957 · コメント 1 件 ·
-
api: database type: feature request
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
-
難易度 4/5 3〜5日 初心者へのやさしさ 45/100
firebase/firebase-admin-python#978 · コメント 1 件 ·
-
難易度 4/5 3〜5日 初心者へのやさしさ 43/100
firebase/firebase-admin-python#945 · コメント 1 件 · リアクション 1 件 ·
-
type: feature request
firebase/firebase-admin-python#915 · コメント 5 件 · リアクション 3 件 · 担当者 3 名 ·
firebase/firebase-admin-python の issue をすべて見る
似ている issue
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
use-agent-os/agent-os#3314 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
BasedHardware/omi#15662 · コメント 1 件 ·
-
documentation help wanted
難易度 2/5 1〜3時間 初心者へのやさしさ 90/100
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
AiursoftWeb/AnduinOS-2#19 ·