当前位置: 首页 > news >正文

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

引言

        密码重置功能是任何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. 测试和优化

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

结论

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

相关文章:

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

引言 密码重置功能是任何Web应用程序中至关重要的一部分。当用户忘记密码时&#xff0c;密码重置功能可以帮助他们安全地重设密码。本文将介绍如何使用HTML、CSS和JavaScript&#xff08;包括Vue.js&#xff09;来实现前端的密码重置功能。 1. 项目结构 首先&#xff0c;我们…...

《双流多依赖图神经网络实现精确的癌症生存分析》| 文献速递-基于深度学习的多模态数据分析与生存分析

Title 题目 Dual-stream multi-dependency graph neural network enables precise cancer survival analysis 《双流多依赖图神经网络实现精确的癌症生存分析》 01 文献速递介绍 癌症是全球主要的死亡原因&#xff0c;2020年约有1930万新发癌症病例和近1000万癌症相关死亡…...

【Hive SQL 每日一题】在线峰值人数计算

文章目录 测试数据需求说明需求实现 测试数据 -- 创建 user_activity 表 DROP TABLE IF EXISTS user_activity ; CREATE TABLE user_activity (user_id STRING,activity_start TIMESTAMP,activity_end TIMESTAMP );-- 插入数据 INSERT INTO user_activity VALUES (user1, 2024…...

谷粒商城学习笔记-18-快速开发-配置测试微服务基本CRUD功能

文章目录 一&#xff0c;product模块整合mybatis-plus1&#xff0c;引入依赖2&#xff0c;product启动类指定mapper所在包3&#xff0c;在配置文件配置数据库连接信息4&#xff0c;在配置文件中配置mapper.xml映射文件信息 二&#xff0c;单元测试1&#xff0c;编写测试代码&am…...

机器学习库实战:DL4J与Weka在Java中的应用

机器学习是当今技术领域的热门话题&#xff0c;而Java作为一门广泛使用的编程语言&#xff0c;也有许多强大的机器学习库可供选择。本文将深入探讨两个流行的Java机器学习库&#xff1a;Deeplearning4j&#xff08;DL4J&#xff09;和Weka&#xff0c;并通过详细的代码示例帮助…...

MongoDB教程(一):Linux系统安装mongoDB详细教程

&#x1f49d;&#x1f49d;&#x1f49d;首先&#xff0c;欢迎各位来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里不仅可以有所收获&#xff0c;同时也能感受到一份轻松欢乐的氛围&#xff0c;祝你生活愉快&#xff01; 文章目录 引言一、Ubuntu…...

leetcode74. 搜索二维矩阵

给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。…...

Redis 布隆过滤器性能对比分析

redis 实现布隆过滤器实现方法&#xff1a; 1、redis 的 setbit 和 getbit 特点&#xff1a;对于某个bit 设置0或1&#xff0c;对于大量的值需要存储&#xff0c;非常节省空间&#xff0c;查询速度极快&#xff0c;但是不能查询整个key所有的bit&#xff0c;在一次请求有大量…...

Java List不同实现类的对比

List不同实现类的对比 文章目录 List不同实现类的对比实现类之一ArrayList实现类之二 LinkedList实现类之三 Vector练习 java.util.Collection用于存储一个一个数据的框架子接口&#xff1a;List存储有序的、可重复的数据&#xff08;相当于动态数组&#xff09; ArrayList lis…...

【C语言】 —— 预处理详解(下)

【C语言】 —— 预处理详解&#xff08;下&#xff09; 前言七、# 和 \##7.1 # 运算符7.2 ## 运算符 八、命名约定九、# u n d e f undef undef十、命令行定义十一、条件编译11.1、单分支的条件编译11.2、多分支的条件编译11.3、判断是否被定义11.4、嵌套指令 十二、头文件的包…...

Jupyter Notebook简介

Jupyter Notebook是一个开源的Web应用程序&#xff0c;允许你创建和共享包含实时代码、方程、可视化和解释性文本的文档。它广泛用于数据清理和转换、数值模拟、统计建模、机器学习等领域。 Jupyter Notebook的优势包括&#xff1a; 1. **交互式计算**&#xff1a;可以在网页…...

ChatGPT 5.0:一年后的猜想

对于ChatGPT 5.0在未来一年半后的展望与看法&#xff0c;我们可以从以下几个方面进行详细探讨&#xff1a; 一、技术提升与功能拓展 语言翻译能力&#xff1a; ChatGPT 5.0在语言翻译方面有望实现更大突破。据推测&#xff0c;新版本将利用更先进的自然语言处理技术和深度学习…...

Java套红:指定位置合并文档-NiceXWPFDocument

需求&#xff1a;做个公文系统&#xff0c;需要将正文文档在某个节点点击套红按钮&#xff0c;实现文档套红 试了很多方法&#xff0c;大多数网上能查到但是实际代码不能找到关键方法&#xff0c;可能是跟包的版本有关系&#xff0c;下面记录能用的这个。 一&#xff1a;添加依…...

【操作系统】进程管理——进程的同步与互斥(个人笔记)

学习日期&#xff1a;2024.7.8 内容摘要&#xff1a;进程同步/互斥的概念和意义&#xff0c;基于软/硬件的实现方法 进程同步与互斥的概念和意义 为什么要有进程同步机制&#xff1f; 回顾&#xff1a;在《进程管理》第一章中&#xff0c;我们学习了进程具有异步性的特征&am…...

Qt:13.多元素控件(QLinstWidget-用于显示项目列表的窗口部件、QTableWidget- 用于显示二维数据表)

目录 一、QLinstWidget-用于显示项目列表的窗口部件&#xff1a; 1.1QLinstWidget介绍&#xff1a; 1.2属性介绍&#xff1a; 1.3常用方法介绍&#xff1a; 1.4信号介绍&#xff1a; 1.5实例演示&#xff1a; 二、QTableWidget- 用于显示二维数据表&#xff1a; 2.1QTabl…...

恢复出厂设置手机变成砖

上周&#xff0c;许多Google Pixel 6&#xff08;6、6a、6 Pro&#xff09;手机用户在恢复出厂设置后都面临着设备冻结的问题。 用户说他们在下载过程中遇到了丢失 tune2fs 文件的错误 。 这会导致屏幕显示以下消息&#xff1a;“Android 系统无法启动。您的数据可能会被损坏…...

解决IntelliJ IDEA中克隆GitHub项目不显示目录结构的问题

前言 当您从GitHub等代码托管平台克隆项目到IntelliJ IDEA&#xff0c;却遇到项目目录结构未能正确加载的情况时&#xff0c;不必太过困扰&#xff0c;本文将为您提供一系列解决方案&#xff0c;帮助您快速找回丢失的目录视图。 1. 调整Project View设置 操作步骤&#xff1…...

Git错误分析

错误案例1&#xff1a; 原因&#xff1a;TortoiseGit多次安装导致&#xff0c;会记录首次安装路径&#xff0c;若安装路径改变&#xff0c;需要配置最后安装的路径。...

pom.xml中重要标签介绍

在 Maven 项目中&#xff0c;pom.xml 文件是项目对象模型&#xff08;POM&#xff09;的配置文件&#xff0c;它定义了项目的依赖关系、插件、构建配置等。以下是 pom.xml 文件中一些重要的标签及其作用&#xff1a; <modelVersion>&#xff1a; 定义 POM 模型的版本。当…...

大模型日报 2024-07-11

大模型日报 2024-07-11 大模型资讯 CVPR世界第二仅次Nature&#xff01;谷歌2024学术指标出炉&#xff0c;NeurIPS、ICLR跻身前十 谷歌2024学术指标公布&#xff0c;CVPR位居第二&#xff0c;超越Science仅次于Nature。CVPR、NeurIPS、ICLR三大顶会跻身TOP 10。 CVPR成全球第二…...

kernelbase.dll 怎么修复?按电脑小白能看懂的步骤来

看到 kernelbase.dll 缺失&#xff0c;很多人会担心是不是系统坏了。其实大多数 kernelbase.dll 报错都能按步骤排查&#xff0c;不需要一开始就重装系统&#xff0c;也不需要马上去下载单个 DLL 文件。下面这套方法按普通用户能操作的顺序来写。每一步只处理一个方向&#xff…...

构建智能家居自动化桥梁:基于Webhook与事件驱动的跨平台集成实战

1. 项目概述与核心价值最近在折腾智能家居和自动化流程&#xff0c;发现很多朋友都卡在了一个看似简单却非常关键的环节上&#xff1a;如何让不同的智能设备或软件服务之间“说上话”。比如&#xff0c;你希望家里的智能音箱在收到指令后&#xff0c;不仅能控制灯光&#xff0c…...

独立开发者如何利用 Taotoken 模型广场低成本试错选型

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 独立开发者如何利用 Taotoken 模型广场低成本试错选型 对于资源有限的独立开发者或小型团队而言&#xff0c;在产品开发初期选择合…...

Ghost区块链集成:NFT内容所有权与分发方案

Ghost区块链集成&#xff1a;NFT内容所有权与分发方案 内容创作者的数字版权困境 传统内容发布平台存在严重的数字版权问题&#xff1a;文章被随意转载、原创收益被平台抽成、作品归属权难以证明。根据2024年《数字内容版权报告》&#xff0c;78%的独立创作者曾遭遇内容侵权&…...

低压电工-电子技术常识

一、导体、绝缘体、半导体&#xff08;按电阻率划分&#xff09;1. 划分标准单位是 Ω・cm&#xff08;欧姆・厘米&#xff09;&#xff0c;不是单纯欧姆 (Ω)&#xff0c;是电阻率专用单位&#xff1a;欧姆・厘米 Ω⋅cm&#xff0c;也可以用 Ω⋅m&#xff08;欧姆・米&#…...

借助Taotoken用量看板,精细化分析团队大模型API消耗趋势

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 借助Taotoken用量看板&#xff0c;精细化分析团队大模型API消耗趋势 对于团队管理者或项目负责人而言&#xff0c;大模型API的调用…...

番茄小说下载器:5种格式+Web界面打造你的私人数字图书馆终极指南

番茄小说下载器&#xff1a;5种格式Web界面打造你的私人数字图书馆终极指南 【免费下载链接】fanqienovel-downloader 下载番茄小说 项目地址: https://gitcode.com/gh_mirrors/fa/fanqienovel-downloader 你是否曾因网络信号不佳而被迫中断精彩的小说阅读&#xff1f;是…...

告别背包爆满!TQVaultAE:泰坦之旅装备管理的终极解决方案

告别背包爆满&#xff01;TQVaultAE&#xff1a;泰坦之旅装备管理的终极解决方案 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE 你是否曾在《泰坦之旅》的冒险中&#xff0…...

图像边缘检测算法全解析:从Sobel到Canny的实战指南

1. 项目概述&#xff1a;从“看见”到“看懂”的第一步在机器视觉的世界里&#xff0c;让计算机“看见”只是第一步&#xff0c;真正的挑战在于让它“看懂”。而“看懂”一幅图像&#xff0c;往往始于识别其轮廓与边界。这就是“边缘检测”的核心价值所在——它如同视觉系统的“…...

【电影研究者的AI护城河】:NotebookLM深度定制教程——仅限高校影视实验室内部流传的6大高阶技巧

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;NotebookLM电影研究辅助的底层逻辑与范式迁移 NotebookLM 并非传统意义上的“AI笔记工具”&#xff0c;而是一个以语义理解为核心、以用户自有资料为知识边界的可验证推理引擎。其在电影研究领域的应用&#…...