簡體   English   中英

是否可以通過 Firebase 無密碼身份驗證發送 OTP 而不是鏈接?

[英]Is it possible to send an OTP instead of a link via Firebase Passwordless authentication?

語境:

我編寫了一個應用程序來分發一個小部件,該小部件將安裝在消費者的 web 應用程序(如 Intercom、Hotjar 等)上,我想使用無密碼身份驗證來驗證我的用戶。

從表面上看,Firebase passwordless auth 會發送一個鏈接到用戶的 email 地址,點擊后會被重定向。 鑒於這是一個小部件,就我而言,重定向到消費者的應用程序是不可能的,因為在 firebase 控制台中將所述應用程序列入白名單是沒有意義的。

重定向到主應用程序(您將在其中獲取小部件的代碼)也沒有意義,因為用戶將在主應用程序而不是小部件中進行身份驗證。

在我看來,理想的解決方案似乎是發送 OTP 代碼,而不是用戶可以將其復制/粘貼到小部件本身的文本字段中。

到目前為止我已經嘗試過:

我已經徹底閱讀了文檔,嘗試實施無密碼身份驗證,這導致了我的上述結論。 由於您無法真正編輯 email 模板,我開始覺得這個用例與 Firebase 無密碼身份驗證的目的不一致。

我在找什么:

我想減少我的用戶的登錄摩擦,我還想驗證他們的 email 地址,以便我可以稍后向他們發送通知/新聞信件等。

其他身份驗證提供程序(如基於 OAuth2 的提供程序)圍繞用戶已注冊該特定服務這一事實展開。 匿名身份驗證允許用戶登錄,但不確保每個用戶都有唯一的 email 地址。 電子郵件/密碼身份驗證具有高摩擦性。

我正在尋找類似於 auth0 的無密碼身份驗證,但與 firebase auth 相比,auth0 對免費計划有更詳細的限制。

任何幫助、建議或指示都會有所幫助!

資源:

Firebase 無密碼驗證: https://firebase.google.com/docs/auth/web/email-link-auth

auth0 無密碼驗證: https://auth0.com/passwordless/

通過閱讀有關使用 Firebase 使用 Email 鏈接進行身份驗證並在 Email 操作中傳遞 State 的文檔,我認為這不是一個完全受支持的場景。 但是您可以通過以下方式模擬它:

  1. 為 email 中的鏈接設置您自己的處理程序頁面。
  2. 讓該頁面顯示鏈接中的oobCode
  3. 在用戶輸入代碼的小部件上設置一個頁面。
  4. 從該代碼和其他特定於應用程序的信息重新創建鏈接。
  5. 通過調用credentialWithLink創建憑據。

不過,這非常復雜,因此您必須自己權衡是否值得付出努力。 一個更簡單的流程是:

  1. 發送鏈接。
  2. 讓他們在其他設備上打開鏈接,以驗證他們的帳戶。
  3. 在小部件中提供一個按鈕, 重新加載他們的個人資料,並檢查他們帳戶中的 email 地址是否經過驗證。

暫無
暫無

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

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