实现前端用户密码重置功能(有源码)

引言

        密码重置功能是任何Web应用程序中至关重要的一部分。当用户忘记密码时,密码重置功能可以帮助他们安全地重设密码。本文将介绍如何使用HTML、CSS和JavaScript(包括Vue.js)来实现前端的密码重置功能。

1. 项目结构

首先,我们定义项目的基本结构:

my-app/
├── public/
│   ├── index.html
├── src/
│   ├── components/
│   │   ├── ResetPassword.vue
│   │   ├── UpdatePassword.vue
│   ├── App.vue
│   ├── main.js
├── package.json

2. 创建ResetPassword组件

ResetPassword.vue
<template><div class="reset-password-container"><h2>重置密码</h2><form @submit.prevent="handleResetPassword"><div class="form-group"><label for="email">邮箱:</label><input type="email" id="email" v-model="email" required /></div><button type="submit">发送重置链接</button></form></div>
</template><script>
export default {data() {return {email: '',};},methods: {handleResetPassword() {const user = {email: this.email,};console.log('Sending reset link to', user);// 在此处添加API调用逻辑},},
};
</script><style scoped>
.reset-password-container {width: 300px;margin: 0 auto;padding: 20px;border: 1px solid #ccc;border-radius: 4px;background: #f9f9f9;
}.form-group {margin-bottom: 15px;
}.form-group label {display: block;margin-bottom: 5px;
}.form-group input {width: 100%;padding: 8px;box-sizing: border-box;
}button {width: 100%;padding: 10px;background-color: #4CAF50;color: white;border: none;border-radius: 4px;cursor: pointer;
}button:hover {background-color: #45a049;
}
</style>

3. 创建UpdatePassword组件

UpdatePassword.vue
<template><div class="update-password-container"><h2>更新密码</h2><form @submit.prevent="handleUpdatePassword"><div class="form-group"><label for="new-password">新密码:</label><input type="password" id="new-password" v-model="newPassword" required /></div><div class="form-group"><label for="confirm-password">确认新密码:</label><input type="password" id="confirm-password" v-model="confirmPassword" required /></div><button type="submit">更新密码</button></form></div>
</template><script>
export default {data() {return {newPassword: '',confirmPassword: '',};},methods: {handleUpdatePassword() {if (this.newPassword !== this.confirmPassword) {alert('两次输入的密码不一致');return;}const user = {newPassword: this.newPassword,};console.log('Updating password with', user);// 在此处添加API调用逻辑},},
};
</script><style scoped>
.update-password-container {width: 300px;margin: 0 auto;padding: 20px;border: 1px solid #ccc;border-radius: 4px;background: #f9f9f9;
}.form-group {margin-bottom: 15px;
}.form-group label {display: block;margin-bottom: 5px;
}.form-group input {width: 100%;padding: 8px;box-sizing: border-box;
}button {width: 100%;padding: 10px;background-color: #4CAF50;color: white;border: none;border-radius: 4px;cursor: pointer;
}button:hover {background-color: #45a049;
}
</style>

 

4. 在App.vue中整合组件

App.vue
<template><div id="app"><header><h1>我的应用</h1><nav><ul><li @click="showResetPassword">重置密码</li><li @click="showUpdatePassword">更新密码</li></ul></nav></header><main><ResetPassword v-if="currentView === 'ResetPassword'" /><UpdatePassword v-if="currentView === 'UpdatePassword'" /></main></div>
</template><script>
import ResetPassword from './components/ResetPassword.vue';
import UpdatePassword from './components/UpdatePassword.vue';export default {components: {ResetPassword,UpdatePassword,},data() {return {currentView: 'ResetPassword',};},methods: {showResetPassword() {this.currentView = 'ResetPassword';},showUpdatePassword() {this.currentView = 'UpdatePassword';},},
};
</script><style>
#app {font-family: Avenir, Helvetica, Arial, sans-serif;text-align: center;color: #2c3e50;margin-top: 60px;
}header {background-color: #35495e;padding: 10px 0;color: white;
}nav ul {list-style: none;padding: 0;
}nav ul li {display: inline;margin: 0 10px;cursor: pointer;
}
</style>

 

5. 启动应用

main.js
import Vue from 'vue';
import App from './App.vue';Vue.config.productionTip = false;new Vue({render: (h) => h(App),
}).$mount('#app');

 

6. 测试和优化

完成以上步骤后,启动开发服务器并测试密码重置和更新功能,确保一切正常。进一步优化界面和用户体验,如添加加载动画、表单验证等。

结论

实现前端密码重置和更新功能并不复杂,但细节决定成败。通过本文的介绍,希望能帮助你构建一个功能完善的用户认证系统。如果你觉得这篇文章对你有帮助,请记得一键三连(点赞、收藏、分享)哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/45197.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024SpringCloud学习笔记

远程调用Rest Template 服务注册与发现&分布式配置管理 Consul 下载安装 官网https:/ldeveloper.hashicorp.com/consul/downloads 开发者模式启动consul agennt -dev 浏览器访问本地端口:8500 服务注册与发现 Maven引入 <!--SpringCloud consul discovery -->…

【Python实战因果推断】31_双重差分2

目录 Canonical Difference-in-Differences Diff-in-Diff with Outcome Growth Canonical Difference-in-Differences 差分法的基本思想是&#xff0c;通过使用受治疗单位的基线&#xff0c;但应用对照单位的结果&#xff08;增长&#xff09;演变&#xff0c;来估算缺失的潜…

小阿轩yx-NoSQL 之 Redis 配置与优化

小阿轩yx-NoSQL 之 Redis 配置与优化 Redis 数据库介绍 是一个非关系型数据库 关系数据库与非关系型数据库 按照数据库结构划分的 关系型数据库 是一个结构化的数据库&#xff0c;创建在关系模型基础上&#xff0c;一般面向于记录借助集合代数等数学概念和方法处理数据库…

215.Mit6.S081-实验三-page tables

在本实验室中&#xff0c;您将探索页表并对其进行修改&#xff0c;以简化将数据从用户空间复制到内核空间的函数。 一、实验准备 开始编码之前&#xff0c;请阅读xv6手册的第3章和相关文件&#xff1a; kernel/memlayout.h&#xff0c;它捕获了内存的布局。kernel/vm.c&…

Python:Python基础知识(注释、命名、数据类型、运算符)

.注释 Python有两种注释方法&#xff1a;单行注释和多行注释。单行注释以#开头&#xff0c;多行注释以三个单引号 或三个双引号 """ 开头和结尾。 2.命名规则 命名规则: 大小写字母、数字、下划线和汉字等字符及组合&#xff1b; 注意事项: 大小写敏感、首…

Linux环境下Oracle 11g的离线安装与配置历程

在成功体验了 Windows 版本的Oracle 11g 后&#xff0c;这几天心血来潮&#xff0c;决定再挑战一下Linux 环境下的安装&#xff0c;特别是在考虑到部门内部虚拟机无法联网的情况下&#xff0c;我选择了在CentOS 7上进行离线安装。这次安装之旅&#xff0c;主要参考了下面大佬的…

【深度学习】关于模型加速

模型转为半精度的会加快推理速度吗 将模型转为半精度&#xff08;通常指16位浮点数&#xff0c;即FP16&#xff09;确实可以加快推理速度&#xff0c;同时还能减少显存&#xff08;GPU内存&#xff09;的使用。以下是一些关键点&#xff1a; 加快推理速度的原因 减少计算量&a…

【计算机科学】CCF-C特刊征稿合集,见刊快,期刊质量高,速投!

期刊推荐 期刊名称&#xff1a;ACTA INFORMATICA 主题包括以下项目的理论方面。 算法及其分析 自动机和形式语言 可计算性和复杂性 数据处理 离散数学 逻辑学&#xff08;计算机科学&#xff09; 人工智能的数学基础 编程语言理论 安全 系统理论 验证 中科院四区 …

不会电脑编程怎么编程:零基础入门指南

不会电脑编程怎么编程&#xff1a;零基础入门指南 在这个数字化时代&#xff0c;编程技能已经成为了一种重要的竞争力。然而&#xff0c;对于许多没有接触过编程的人来说&#xff0c;如何入门却成为了一个令人困惑的问题。如果你也不会电脑编程&#xff0c;那么本文将为你提供…

STM32智能物流机器人系统教程

目录 引言环境准备智能物流机器人系统基础代码实现&#xff1a;实现智能物流机器人系统 4.1 数据采集模块 4.2 数据处理与导航算法 4.3 通信与网络系统实现 4.4 用户界面与数据可视化应用场景&#xff1a;物流机器人管理与优化问题解决方案与优化收尾与总结 1. 引言 智能物流…

synchronized (userAccount.intern())知识点

synchronized (userAccount.intern()) 是一种在 Java 中同步代码块的方法&#xff0c;用于确保在多线程环境中对共享资源的安全访问。具体来说&#xff0c;这个语句使用 userAccount.intern() 返回的对象作为锁来同步代码块&#xff0c;以确保同一时刻只有一个线程能够执行该代…

mindspore打卡23天之微调本地MindNLP ChatGLM-6B StreamChat

MindNLP ChatGLM-6B StreamChat 本案例基于MindNLP和ChatGLM-6B实现一个聊天应用。 1 环境配置 %%capture captured_output # 实验环境已经预装了mindspore2.2.14&#xff0c;如需更换mindspore版本&#xff0c;可更改下面mindspore的版本号 !pip uninstall mindspore -y !p…

基于JavaSpringBoot+Vue+uniapp微信小程序校园宿舍管理系统设计与实现(7000字论文参考+源码+LW+部署讲解)

博主介绍&#xff1a;硕士研究生&#xff0c;专注于信息化技术领域开发与管理&#xff0c;会使用java、标准c/c等开发语言&#xff0c;以及毕业项目实战✌ 从事基于java BS架构、CS架构、c/c 编程工作近16年&#xff0c;拥有近12年的管理工作经验&#xff0c;拥有较丰富的技术架…

Linux:NFS共享存储

目录 一、NFS基本概述 二、NFS共享文件实验 2.1、安装nfs和rpcbind软件 2.2、修改配置文件设置共享 2.3、创建共享目录 ​编辑 2.4、开启服务 2.5、客户端验证共享目录可访问 三、tcpdump命令 3.1、概述 3.2、简单表达 3.3、过滤规则 ​编辑 3.4、tcpdump常见参数…

解决Spring Boot中的数据安全与加密

解决Spring Boot中的数据安全与加密 大家好&#xff0c;我是微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 在现代Web应用和服务中&#xff0c;数据安全性至关重要。本文将深入探讨如何在Spring Boot应用中实现数据安全和…

强化学习实战2:动手写迷宫环境

迷宫环境介绍与创建 迷宫环境图示如下&#xff1a; 如图所示&#xff0c;其为一个 三乘三 的网格世界&#xff0c;我们要让 agent 从 S0 采取策略出发&#xff0c;然后走到 S8&#xff0c;图中红线部分表示障碍不能逾越&#xff0c;其中 S1 和 S4 之间有一个障碍&#xff0c;S…

C语言有哪些特点?

C语言是一种结构化语言&#xff0c;它有着清晰的层次&#xff0c;可按照模块的方式对程序进行编写&#xff0c;十分有利于程序的调试&#xff0c;且c语言的处理和表现能力都非常的强大&#xff0c;依靠非常全面的运算符和多样的数据类型&#xff0c;可以轻易完成各种数据结构的…

Kotlin MultiPlatform(KMP)

Kotlin MultiPlatform 1.KMP 是什么 Kotlin Multiplatform 是一个工具&#xff0c;它让我们用同一种编程语言&#xff08;Kotlin&#xff09;写代码&#xff0c;这些代码可以同时在不同的设备上运行&#xff0c;比如手机、电脑和网页。这样做可以节省时间&#xff0c;因为你不…

1、项目目录设计

文章目录 前言一、项目目录设计 前言 本项目我们将会完成一个Go项目开发框架&#xff0c;该项目不会包含具体的CRUD业务代码&#xff0c;而是从头搭建一个工作中实用的开发框架。让开发者能够熟悉整个项目的搭建流程&#xff0c;能够独立完成项目从0到1的搭建&#xff0c;而且…

编程语言长盛不衰的意思

编程语言长盛不衰的意思 在数字时代的浪潮中&#xff0c;编程语言始终扮演着至关重要的角色。它们不仅是连接人与机器的桥梁&#xff0c;更是推动科技进步和创新的重要力量。然而&#xff0c;当我们提及“编程语言长盛不衰”时&#xff0c;究竟意味着什么呢&#xff1f; 四个…