這個問題的簡短版本是:如果您使用Firebase的OAuth功能獲取用戶的電子郵件地址,您是否仍然需要自己確認/驗證用戶的電子郵件地址?Firebase - 無法相信OAuth返回的詳細信息?
使用OAuth的一個常見好處是 - 根據OAuth提供商 - 您可以獲得確認的電子郵件地址,但在使用Firebase進行Web應用時,情況確實如此。與AngularJS的綁定?
用戶驗證後,似乎有兩個數據對象 - 可用於客戶端的authData
和可用於服務器端的安全規則的auth。雖然authData
包含名稱和電子郵件等詳細信息,但auth
僅包含Firebase uid
加provider
。因此,如果我要獲得該用戶的電子郵件地址,它必須由客戶提供,因此不能(在理論上)被信任?
根據我的火力地堡的文檔的理解,如果我使用的GitHub的OAuth我的應用程序,我需要做類似如下:
- 獲取用戶的登錄/與火力地堡創建賬戶/ GitHub的
- 客戶JS檢索從GitHub的OAuth迴應的電子郵件地址
- 客戶JS「提交」這封電子郵件確認 - 可以做多種方式
- 電子郵件地址應與狀態保存在火力地堡「未經證實的」(如一個字段只讀t用戶)
- 我需要我自己的服務器端邏輯來處理這樣的電子郵件提交併發送確認電子郵件請求,例如,通過類似山魈
- 我需要更多的服務器端邏輯接收點擊確認和標記中的電子郵件地址爲「確認」火力地堡
因此火力地堡能幫助我的步驟1-3,但第4步-6需要通過我自己的服務器端代碼來完成?
因此,對這個問題的回答是「是/否」,但有一些理由/解釋!
是的。這一切看起來正確。 – Kato