当前位置:首页 > VUE

vue实现找回密码源码

2026-03-27 02:51:19VUE

以下是一个基于Vue.js的找回密码功能实现方案,包含前端页面逻辑和关键代码示例:

找回密码表单组件

<template>
  <div class="forgot-password">
    <form @submit.prevent="handleSubmit">
      <input 
        v-model="email" 
        type="email" 
        placeholder="注册邮箱"
        required
      >
      <button type="submit">发送重置链接</button>
    </form>
    <p v-if="message" :class="{ error: isError }">{{ message }}</p>
  </div>
</template>

<script>
export default {
  data() {
    return {
      email: '',
      message: '',
      isError: false
    }
  },
  methods: {
    async handleSubmit() {
      try {
        const response = await axios.post('/api/password/email', {
          email: this.email
        });
        this.message = response.data.message;
        this.isError = false;
      } catch (error) {
        this.message = error.response.data.message || '请求失败';
        this.isError = true;
      }
    }
  }
}
</script>

密码重置组件

<template>
  <div class="reset-password">
    <form @submit.prevent="handleSubmit">
      <input 
        v-model="password" 
        type="password" 
        placeholder="新密码"
        required
      >
      <input 
        v-model="password_confirmation" 
        type="password" 
        placeholder="确认密码"
        required
      >
      <input type="hidden" v-model="token">
      <button type="submit">重置密码</button>
    </form>
  </div>
</template>

<script>
export default {
  data() {
    return {
      password: '',
      password_confirmation: '',
      token: this.$route.query.token || '',
      email: this.$route.query.email || ''
    }
  },
  methods: {
    async handleSubmit() {
      if (this.password !== this.password_confirmation) {
        alert('两次密码输入不一致');
        return;
      }

      try {
        await axios.post('/api/password/reset', {
          email: this.email,
          password: this.password,
          password_confirmation: this.password_confirmation,
          token: this.token
        });
        this.$router.push('/login');
      } catch (error) {
        console.error(error);
      }
    }
  }
}
</script>

路由配置示例

const routes = [
  {
    path: '/forgot-password',
    component: ForgotPassword
  },
  {
    path: '/reset-password',
    component: ResetPassword
  }
];

后端API接口规范

前端需要对接以下API端点:

  • 发送重置邮件:POST /api/password/email
  • 重置密码:POST /api/password/reset

密码强度验证

可在前端添加密码强度验证:

vue实现找回密码源码

validatePassword(password) {
  const regex = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z\d]{8,}$/;
  return regex.test(password);
}

注意事项

  1. 确保使用HTTPS协议传输敏感数据
  2. 重置链接应设置有效期(通常24小时)
  3. 前端验证不能替代后端验证
  4. 使用axios拦截器处理全局错误
  5. 密码重置成功后应强制用户重新登录

以上代码需要配合后端服务实现完整的密码找回功能,后端应负责生成重置令牌、发送邮件和实际更新密码等操作。

分享给朋友:

相关文章

如何查看react源码

如何查看react源码

查看React源码的方法 克隆React仓库 访问React的GitHub仓库(https://github.com/facebook/react),使用以下命令克隆到本地: git clone…

react源码实现视频

react源码实现视频

以下是关于React源码实现的视频资源推荐,涵盖核心概念、虚拟DOM、Fiber架构等关键内容的讲解: React源码解析视频资源 React Fiber架构深度解析 B站UP主「技术蛋」的系列视频…

java 如何导入源码

java 如何导入源码

导入 Java 源码的方法 通过 IDE 直接导入项目 大多数集成开发环境(如 IntelliJ IDEA、Eclipse)支持直接导入现有项目。在 IDE 中选择 "File" > "Open…

java 如何修改源码

java 如何修改源码

修改 Java 源码的步骤 获取源码 从官方渠道下载 Java Development Kit (JDK) 的源码包。OpenJDK 是开源的,可以通过其官方网站或 GitHub 仓库获取。 配置开…

java源码如何运行

java源码如何运行

运行Java源码的步骤 准备JDK环境 确保已安装Java Development Kit(JDK),可通过命令行输入java -version和javac -version验证。若未安装,需从Ora…

如何运行java源码

如何运行java源码

运行Java源码的方法 准备Java开发环境 确保系统已安装JDK(Java Development Kit)。可通过命令行输入 java -version 和 javac -version 验证是否…