我不明白,为什么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;
}
},
qq_遁去的一_1
相关分类