亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么 sendSignInLinkToEmail(email, settings)

為什么 sendSignInLinkToEmail(email, settings)

慕容3067478 2021-12-12 11:04:24
我不明白,為什么firebase.auth().sendSignInLinkToEmail(email, settings)要向尚未注冊的電子郵件地址發送登錄電子郵件。此外,當我然后單擊鏈接,打開我檢查電子郵件的站點時firebase.auth().signInWithEmailLink(email, signInEmailLink),電子郵件被注冊并且用戶已登錄!我認為那是古玩,因為我已經建立了一個單獨的注冊流程。我希望當我firebase.auth().sendSignInLinkToEmail(email, settings)使用未注冊的電子郵件撥打電話時會收到錯誤消息。我究竟做錯了什么?這是我發送電子郵件并在用戶單擊鏈接時登錄的代碼。async login(email) {    try {        const settings = {            handleCodeInApp: true,            url: encodeURI(`${location.protocol}//${location.host}/#!/user/verifizieren`),        };        await firebase.auth().sendSignInLinkToEmail(email, settings);        window.localStorage.setItem(storageKeyEmail, email);    } catch(error) {        console.error(error);        throw error;    }},async verify(email, link) {    const signInEmailLink = link || window.location.href;    if(!firebase.auth().isSignInWithEmailLink(signInEmailLink)) {        return Promise.reject('auth/link-invalid');    }    try {        await firebase.auth().signInWithEmailLink(email, signInEmailLink);        firebase.auth().currentUser.reload();        firebase.auth().currentUser.getIdToken(true);        window.localStorage.removeItem(storageKeyEmail);    } catch(error) {        console.error(error);        throw error;    }},
查看完整描述

1 回答

?
qq_遁去的一_1

TA貢獻1725條經驗 獲得超8個贊

使用電子郵件鏈接登錄也適用于新的電子郵件帳戶。這些帳戶不需要已經存在。如果您想阻止電子郵件發送,您可以事先檢查該帳戶是否存在:


firebase.auth().fetchSignInMethodsForEmail(email).then((signInMethods) => {

  if (signInMethods.length === 0) {

    // New user.

  } else {

    // Existing user.

  }

});

但是,以上只是客戶端強制執行的,因此用戶可以通過調用 REST API 來繞過。


查看完整回答
反對 回復 2021-12-12
  • 1 回答
  • 0 關注
  • 262 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號