如何在 firebase auth 中实现重新认证?

问题描述 投票:0回答:0

删除账号

  const handleDelete = async function () {
    const auth = getAuth();
    const user = auth.currentUser;
    const promises = [];
    const userCollections = [
      `${user.email}_data`,
      `${user.email}_data/bookmarked_movies/bookmarks`,
      `${user.email}_data/bookmarked_movies/bookmarks_trace`,
    ];
    const userDocs = [`${user.email}_data/collection_list`];
    userCollections.map(async (colRef) => {
      const querySnapshot = await getDocs(collection(db, colRef));
      querySnapshot.forEach((doc) => {
        console.log(doc.data());
        promises.push(deleteDoc(doc.ref));
      });
    });
    await Promise.all(promises);

    const credential = promptForCredentials();

    reauthenticateWithCredential(user, credential)
      .then(() => {
        console.log("user is reauthenticated");
      })
      .catch((err) => console.error(err));

    deleteUser(user).catch((err) => console.log(err));

    navigate("../../");
  };

我正在实现删除用户帐户功能,但我一直坚持从 auth 中删除用户。好的,所以要删除用户,您最近必须实际登录,或者如果您之前登录时间过长,则必须重新进行身份验证,他们说出于安全原因。问题是我真的不明白如何实现它?那是如何工作的?我知道

proptForCredentials()
函数应该返回一些数据并将其分配给
credential
变量,但我不明白如何实现它。有人可以给我解释一下吗?

reactjs firebase authentication security firebase-authentication
© www.soinside.com 2019 - 2024. All rights reserved.