Vue3+axios+Mock.js实现登录功能

news2024/7/4 5:36:23

文章目录

  • 前言
  • 一、Vue3 + Element Plus + Mock.js + axios实现登录功能
    • 1.登录页面配置路由、编写表单内容
    • 2.编写表单校验规则
    • 3.登录触发表单预验证
    • 4.Mock.js模拟登录请求
  • 二、面试题
    • 1.前端登录流程
    • 2.token是什么?


前言

最近学习了Vue3,这篇文章主要分享一下基于Vue3 + TypeScript的项目,利用Mock.js模拟后端数据,axios实现请求来完成一个登录功能。


一、Vue3 + Element Plus + Mock.js + axios实现登录功能

1.登录页面配置路由、编写表单内容

在router/index.ts中配置路由:
在这里插入图片描述
编写登录表单,el-form中绑定的数据要和下面定义的内容保持一致。
在这里插入图片描述
效果如下:
在这里插入图片描述

2.编写表单校验规则

在这里插入图片描述
看下效果:
在这里插入图片描述

3.登录触发表单预验证

这里利用Element Plus的form中的validate方法对整个表单进校验。
这个表单节点叫做ruleFormRef,由于setup中是没有this的,我们不能像Vue2中,通过this.$refs.xxx来获取节点。我们去setup中利用ref再重新定义一个相同名称的变量就可以,然后,它们就会自动关联起来。
在这里插入图片描述
点击登录就触发校验:
在这里插入图片描述
点击登录按钮验证一下:
在这里插入图片描述
在这里插入图片描述

4.Mock.js模拟登录请求

关于Mock.js的使用,可以看一下之前记录的博客Mock.js学习。在Mock.js中模拟一个post请求,第一个参数是拦截的请求路径,第二个参数是拦截的请求方式,第三个参数是拦截之后的处理逻辑,回调函数中params就是请求体携带的参数。
然后在mock登录请求中限制一下用户名和密码,两者输入正确才能获取到token。token值利用Mock随机函数中来生成。
在这里插入图片描述
直接在登录页面上引入axios,导入axios就可以直接使用啦~
然后调用一下模拟的post登录请求:
在这里插入图片描述
验证一下:
输入正确的账号和密码,就可以获取到请求返回的数据,并且拿到token。
在这里插入图片描述
输入错误的账号密码,就不会返回token值了。
在这里插入图片描述
注意:mock只是模拟数据,不会在network中显示,只有真实的请求才会在network中显示。

登录成功,跳转到首页即可。

router.push("/home");

二、面试题

1.前端登录流程

① 在登录页点击”登录“,前端会带着用户名和密码去调用后端的登录接口请求登录;
② 后端收到请求后,会验证用户名和密码,如果验证失败,会返回相关的错误信息,前端提示相应错误信息;如果验证成功,就会生成当前用户所对应的一个token值,并返回前端token;
③ 前端拿到token之后,将token存储起来(可以存储在localStorage、sessionStorage、cookie、vuex中),并跳转页面即登录成功;
④ 前端每一次向后端请求资源的时候都要携带后端签发的token。如果前端在发起下一次请求时携带了token,那么服务器就会根据提交的token值去验证你是哪个用户,从而根据你的操作去返回不同的结果;
⑤ 最后,在向后端发送其他请求时,我们一般需要在请求头中带上这个token值,在项目中我们通常把它封装在一个请求拦截器中,后端判断请求头中有无该token,有则验证该token,验证成功就会正常地返回数据,验证失败,比如过期,就会返回相应的错误码,前端拿到相关错误信息清除token,并且再回退到登录页。

2.token是什么?

token的意思是令牌,是用户第一次登录时,服务器生成的一段加密字符串,然后返回给客户端。
客户端每次向服务器请求资源的时候,只需要带上token去请求数据就行,不用再带着用户名和密码去请求,服务器直接解密token,就可以知道用户的相关信息。由于基本所有请求都需要携带toke,我们可以在请求拦截器中统一封装,让每个请求都能带上token。


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

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

相关文章

2023年6月DAMA-CDGA/CDGP数据治理认证考试可报名地区公布

2023年4月23日,据DAMA中国官方信息,目前6月DAMA-CDGA/CDGP数据治理认证考试开放报名地区有:北京、上海、广州、深圳、长沙、呼和浩特。目前南京、济南、西安、杭州等地区还在接近开考人数中,打算6月考试的朋友们可以抓紧时间报名啦…

内网远程控制软件哪个好用

市面上远程控制软件很多,但是支持纯内网环境(无外网)的很少。大部分远程控制软件可以在局域网用,但是它的数据流量还是要走软件公司服务器,也就是要走外网,所以在纯内网环境没法使用。那么什么软件支持纯内…

什么是光伏发电AGC/AVC系统及RCL-0923光伏群调群控AGC/AVC装置简介。以及分布式电源光伏可观可测,可调可控方案介绍

什么是光伏发电AGC/AVC系统及RCL-0923光伏群调群控AGC/AVC装置简介。以及分布式电源光伏可观可测,可调可控方案介绍。虚拟电厂光伏电站电压快速控制装置 一:什么是ACG系统 AGC系统是指自动发电控制系统,它通过控制光伏逆变器的出力&#xff0…

c++类 笔记

派生类 #include <iostream> using namespace std; class Box{private://类私有&#xff0c;只有成员可以调用 也就是说你不可以通过box1.a来调用 ,这些变量其实你默认不用写private 这个变量&#xff0c;只要放在最上面他默认就是 私有int a1;protected://protected&am…

博途1200/1500PLC工艺PID编程应用(SCL语言)

博途工艺PID的详细解读可以查看下面的博客文章,这里不再赘述 博途PLC 1200/1500PLC 工艺对象PID PID_Compact详细解读_RXXW_Dor的博客-CSDN博客这篇博文我们详细解读博途PLC自带的PID功能块PID_Compact,大部分工业闭环调节过程,我们采用系统自带的PID功能块基本都能胜任,一…

Linux的进程控制

进程创建后&#xff0c;需要对其进行合理管理&#xff0c;光靠OS 是无法满足我们的需求的&#xff0c;此时可以运用进程控制相关知识&#xff0c;对进程进行手动管理&#xff0c;如创建进程、终止进程、等待 进程等&#xff0c;其中等待进程可以有效解决僵尸进程问题。 1、进程…

日撸 Java 三百行day38

文章目录 说明day381.Dijkstra 算法思路分析2.Prim 算法思路分析3.对比4.代码 说明 闵老师的文章链接&#xff1a; 日撸 Java 三百行&#xff08;总述&#xff09;_minfanphd的博客-CSDN博客 自己也把手敲的代码放在了github上维护&#xff1a;https://github.com/fulisha-ok/…

java--Lock锁

1.概述 锁是一种工具&#xff0c;用于控制对共享资源的访问 Lock和synchronized&#xff0c;这两个是最常见的锁&#xff0c;它们都可以达到线程安全的目的&#xff0c;但是在使用上和功能上又有较大的不同。 Lock并不是用来代替synchronized的&#xff0c;而是当使用synchroni…

verilog手撕代码3——序列检测和序列发生器

文章目录 前言一、序列检测器1.1 重复序列检测1.1.1 序列缓存对比/移位寄存器法1.1.2 状态机法 1.2 非重复序列检测 二、序列发生器2.1 移位寄存器法2.2 反馈法2.3 计数器法 前言 2023.4.25 2023.4.26 学习打卡&#xff0c;天气转晴 一、序列检测器 1.1 重复序列检测 1.1.1 …

SpringBoot整合EasyExcel上传下载前后端

SpringBoot整合EasyExcel上传下载前后端 需求&#xff0c;在项目启动时加载表格里的数据初始化&#xff0c;前端可以上传全部部门的表格数据&#xff0c;后台根据部门名字解析归类数据和根据表格的部门下载部门数据1.后端1.1创建一个SpringBoot项目&#xff0c;引入依赖1.2 在r…

推荐几个可以免费体验GPT-4的网站

想要体验GPT-4除了每月花20美刀还有别的办法吗&#xff1f;&#xff08;甚至现在有钱都花不了&#xff09; 问就是有的&#xff0c;我搜罗了一些可以免费使用GPT-4的网站&#xff08;注意需要魔法&#xff09;&#xff0c;体验之后觉得还行&#xff0c;推荐给大家。 有别的大…

JavaWeb学习笔记

文章目录 一. HTML二. CSS三. JavaScript1. 引入2.语法/输出语句3. 变量/数据类型4. 运算符5. 流程控制语句6. 函数7. 对象8. 事件监听 四. Servlet1.执行流程2. 生命周期3. 常用方法4. 体系结构5. 配置Servlet 五. JSP1. 简介2. JSP原理3.脚本4.JSP缺点5. EL表达式6. JSTL标签…

AI+HPC?人工智能高性能计算方向就业新路子

刚刚过去的3月&#xff0c;GPT-4刷屏了。吃瓜群众一边津津乐道&#xff0c;一边瑟瑟发抖。随后国产大模型紧随其后&#xff0c;百度的“文心一言”、阿里的“通义千问”、复旦大学的“MOSS”、商汤的“商量”竞赛般的亮家伙&#xff0c;有点全民练模型&#xff0c;人人GPT的味道…

【最新】Jetson Agx Xavier烧录环境到TensorRT加速(高集成,快速简单有效)

一.下载烧录好的基础镜像 1. 基础环境 当前镜像包是ubuntu18.08,镜像。镜像包已安装jetpack 4.6,python3.6 &#xff0c;torch1.7, opencv, tensorrt等&#xff0c;运行模型的基本环境都已搭建。jetpack 是4.6 对应L4T是32.6.1。如下图&#xff1a; (1).下载当前文件包&…

OSCP-Escape(gif绕过)

目录 扫描 WEB 扫描 sudo nmap 192.168.233.113 -p- -sS -sVPORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0) 80/tcp open http Apache httpd 2.4.29 ((Ubuntu)) 8080/tcp open http Apache…

Golang中的一些关键字(defer、:=、go func())

作者&#xff1a;非妃是公主 专栏&#xff1a;《Golang》 博客主页&#xff1a;https://blog.csdn.net/myf_666 个性签&#xff1a;顺境不惰&#xff0c;逆境不馁&#xff0c;以心制境&#xff0c;万事可成。——曾国藩 文章目录 defervar与 : 的区别var:二者区别 go func de…

antDesignPro6项目:供应链系统—实战问题解决汇总

系统使用的技术&#xff1a;antDesignPro6 Umi4 antDesign antDesignProComponents 其他技术 1、如何设置ModalForm组件&#xff0c;销毁时&#xff0c;自动重置表单&#xff1f; modalProps{{ destroyOnClose: true }} // 重置表单 答&#xff1a;给ModalForm组件添加mo…

智加科技+舍弗勒,首发量产正向开发的智能重卡冗余转向

对于自动驾驶赛道来说&#xff0c;感知、规划和控制&#xff0c;除了计算平台、算法等核心上层软硬件支持&#xff0c;底盘控制系统同样是关键一环。事实上&#xff0c;从Demo到规模化量产&#xff0c;更好的车身控制能力以及冗余备份&#xff0c;也是自动驾驶公司迈入2.0阶段的…

中介作用分析流程

中介作用分析流程 一、案例背景 家庭氛围对于学生成长具有重要的意义。好的家庭氛围能够增强学生的家庭幸福感&#xff0c;促进学生良好性格的形成。在这个过程中&#xff0c;父子沟通与母子沟通对于家庭氛围和家庭幸福感都具有显著影响作用。现在有一项研究想要探究父子沟通和…

企业级信息系统开发讲课笔记3.2 基于Java配置类整合SSM框架实现用户登录

文章目录 零、本节学习目标一、采用MVC架构二、用户登录运行效果三、基于Java配置类整合SSM框架实现用户登录&#xff08;一&#xff09;创建数据库与表1、创建数据库2、创建用户表3、在用户表里插入记录 &#xff08;二&#xff09;创建Maven项目&#xff08;三&#xff09;添…