javascript - 在 firebase 和 Expo 中重置密码时如何检查当前密码?

标签 javascript firebase react-native firebase-authentication expo

<分区>

我正在使用 react native expo 和 firebase api 添加密码重置功能。<​​/p>

UI link

首先输入的是当前密码。

第二次输入是新密码。

第三个输入是确认新密码。

要检查当前密码,我必须获取当前密码。

请帮帮我!

最佳答案

您可以使用 reauthenticateWithCredential()验证用户密码,然后 updatePassword()更新它:

import { getAuth, reauthenticateWithCredential, EmailAuthProvider } from "firebase/auth";

const auth = getAuth();

const resetUserPassword = async () => {
  const user = auth.currentUser;

  const cred = EmailAuthProvider.credential(user.email, "[USER_PASSWORD]");

  try {
    await reauthenticateWithCredential(user, cred)
   
    // User entered correct credentials
    // Update password
    await updatePassword(auth.currentUser, "[NEW_PASSWORD]");
  } catch (e) {
    console.log(e.code, e.message)
    // Could be incorrect credentials
  }
} 

更新密码需要最近一次登录,如果用户长时间登录,则需要重新验证。

关于javascript - 在 firebase 和 Expo 中重置密码时如何检查当前密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71529932/

相关文章:

javascript - Web 应用程序作为桌面应用程序

javascript - Bootstrap 确认主模态后面的模态

Firebase - 检查电子邮件是否已注册的最有效方法是什么?

firebase - 在 initState() flutter 中使用异步方法

javascript - React Native - 如何在 IntroSliders 之后导航到主体

javascript - 如何在 React Native 中组件的渲染函数内调用对象内的类?

javascript - Rx js 理解 lift 方法

php - 将 JavaScript 对象传递给 HIDDEN 输入字段,并将其作为数组/对象捕获到服务器端

firebase - 如何从 Google Cloud Storage 中删除超过 180 天的旧文件?

javascript - 如何在 React Native 中使用相同的状态调用获得不同的结果?