簡體   English   中英

為什么這段代碼在firebase發送密碼重置鏈接失敗?

[英]Why did this code fail to send password reset link in firebase?

我是 firebase 的新手,我正在嘗試在 React.js 中處理 firebase 用戶身份驗證。 我確實設法使用 email 和密碼創建了用戶。 但是,現在我想向用戶發送一個 Email 鏈接來重置他們的密碼。

我的代碼目前看起來像這樣。

// This line of code belongs to the top
import { auth } from '../firebaseConfig'

//This part goes under the React component
    <p onClick={async () => {
      try{
        await sendPasswordResetEmail(auth, // My Email Id)
        alert('Password reset link has been sent to your email')
      }
      catch(err){
        alert(err)
      }
    }}
    >Forgot your Password ?</p>

但是,我沒有收到任何錯誤消息,但收到了提示消息“密碼重置鏈接已發送至您的 email”。 不幸的是,我沒有收到任何 email。請注意,我已將自己的 email id 作為測試目的的參數。

你檢查你的垃圾郵件文件夾了嗎? 我們最近看到很多來自 Firebase 身份驗證的電子郵件最終都進入了用戶的垃圾郵件文件夾。

為減少發生這種情況的機會,請考慮自己對電子郵件傳遞進行更多控制。

  1. 作為第一步,考慮在您的項目中使用自定義域 來自自定義域的電子郵件被標記為跨度的機會較小。
  2. 第二步,考慮設置您自己的 SMTP 服務器.) 來傳送電子郵件,這樣電子郵件就不再從 Firebase 的共享基礎架構傳送。

雖然這些步驟涉及更多,但它們通常會大大減少來自 Firebase 身份驗證的消息被標記為垃圾郵件的情況。

基於弗蘭克回答的完整指南

首先創建一個新的 email 帳戶,您可以使用它通過 SMTP 服務器中繼 Firebase 電子郵件。 我個人選擇了Gmail ,但我用Outlook進行了測試,它也有效。

您現在可以找到適用於您的方案的 SMTP 服務器主機。 如果您每月發送的電子郵件少於 1000 封,您可以找到免費可靠的主機。 我選擇了SMTP2GO的免費選項。

現在您已經找到 SMTP 主機,添加您選擇的 email 地址作為single sender email (請注意,如果您擁有一個域,您也可以使用該域發送電子郵件)。

在此處輸入圖像描述

請注意,您必須驗證 email,通常由您的主機發送一個鏈接到電子郵件的收件箱。 確保檢查垃圾郵件。

驗證后,導航到您托管的位置,您可以添加SMTP Users並添加新用戶。 這將分配一個 SMTP usernamepassword

在此處輸入圖像描述

導航到 Firebase 控制台,然后從邊欄中選擇Authentication選項(在構建產品類別中)。

Go 到TemplatesSMTP Settings並輸入您的 SMTP 服務器的詳細信息。 用戶名和密碼字段將填寫您在上述步驟中創建的 SMTP 用戶登錄名。

在此處輸入圖像描述

最好使用TLS ,但我相信SSL應該也可以,但它未經測試

單擊保存,一切就緒 - 但可能仍需要執行一些步驟,具體取決於您的 email 提供商。


提供商特定步驟

如果電子郵件被發送到由 Google 管理的帳戶,您的電子郵件將被反垃圾郵件策略隔離,不會有任何問題,並且會立即生效

如果您使用的是 Outlook,則會遇到不同的問題。 Outlook 的內置防御者很可能會根據多項政策自動隔離您的 email - 這一點很重要。

這些策略可能既是垃圾郵件策略又是網絡釣魚策略。 如果您取消阻止其中一個,另一個捕獲它並重新隔離。

取消阻止 email 地址的兩個策略,然后進行測試。 您可以在 Microsoft 365 Defender 應用中的ReviewQuarantine下查看隔離郵件的狀態。 請注意,您需要成為管理員才能將全局允許策略添加到您的 email 帳戶。

如果這仍然不起作用,則可能是您的公司有一個額外的外部過濾器(就像我的一樣),並且您必須手動將 IP 添加到Tenant Allow/Block Lists欺騙發件人選項卡。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM