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

6.前端怎么做一个验证码和JWT,使用mockjs模拟后端

流程图

创建一个发起请求

创建一个方法

    getCaptchaImg() {this.$axios.get('/captcha').then(res => {console.log(res);this.loginForm.token = res.data.data.tokenthis.captchaImg = res.data.data.captchaImgconsole.log(this.captchaImg)})},
    captchaImg: "",

创建一个参数

先使页面刷星调用这个方法

  created() {this.getCaptchaImg();},

要导入的图片,我这里加宽和高是因为,我的显示不出来,也不知道什么原因,望大佬指教

          <el-input v-model="loginForm.code"><el-image slot="append" v-if="captchaImg" :src="captchaImg" style="width: 70px;height: 30px"class="captchaImg"></el-image></el-input>

使用mockjs

在main.js中加入

创建一个mock.js的文件

就可以模拟后端接口

const Mock = require('mockjs')const Random = Mock.Random
返回的结果
let Result = {code: 200,msg: '操作成功',data: null
};
这里和前端对应
Mock.mock('/captcha', 'get', () => {Result.data = {token: Random.string(32),这些方法可以在mockjs的官网上面去查询captchaImg: Random.dataImage('100x40', 'p7n5w'),}return Result;
});
Mock.mock('/login', 'post', () => {//无法往header中传入数据return Result;
});

结果

有点丑,见谅

现在我们要让所有页面都能有JWT

我们就要在store/index.js中进行一个传值

import Vue from 'vue'
import Vuex from 'vuex'Vue.use(Vuex)export default new Vuex.Store({state: {
设置一个变量tokentoken: '',},getters: {},mutations: {
设置一个方法,将token存入localStorageSET_TOKEN: (state, token) => {state.token = tokenlocalStorage.setItem("token", token)},},actions: {},modules: {}
})

写一个发请求的方法

    submitForm(loginForm) {this.$refs[loginForm].validate((valid) => {if (valid) {this.$axios.post('/login', this.loginForm).then(res => {const jwt = res.headers['authorization']// 把jwt放到请求头中this.$store.commit('SET_TOKEN', jwt)//页面的跳转this.$router.push('/index')});} else {console.log('error submit!!');return false;}});},

mockjs中写接口

Mock.mock('/login', 'post', () => {//无法往header中传入数据return Result;
});

http://www.lryc.cn/news/414249.html

相关文章:

  • Python酷库之旅-第三方库Pandas(064)
  • MATLAB基础操作(二)
  • win10 繁体简体字切换
  • R语言统计分析——描述性统计
  • 为什么需要合成数据进行机器学习
  • 传统CS网络的新生——基于2G网络的远程灌溉实现
  • EasyAR_稀疏空间图
  • 设计模式 - Singleton pattern 单例模式
  • 显示学习5(基于树莓派Pico) -- 彩色LCD的驱动
  • ros vscode配置gdb调试
  • C 环境设置
  • Linux-ubuntu操作系统装机步骤
  • 马尔科夫毯:信息屏障与状态独立性的守护者
  • Pandas的30个高频函数使用介绍
  • 1. protobuf学习
  • Java面试题:SpringBean的生命周期
  • 50 IRF检测MAD-BFD
  • SpringSecurity-1(认证和授权+SpringSecurity入门案例+自定义认证+数据库认证)
  • Java高级
  • python实现图像分割算法3
  • 解密XXE漏洞:原理剖析、复现与代码审计实战
  • Spring Boot集成Resilience4J实现限流/重试/隔离
  • 谷粒商城实战笔记-119~121-全文检索-ElasticSearch-mapping
  • Java 并发编程:Java 线程池的介绍与使用
  • ubuntu上安装HBase伪分布式-2024年08月04日
  • Mojo的特征与参数(参数化部分)详解
  • C++数组、vector求最大值最小值及其下标
  • 内网安全:多种横向移动方式
  • 搭建 STM32 网关服务器的全流程:集成嵌入式 C++、TCP/IP 通信、Flash 存储及 JWT 认证(含代码示例)
  • 一款免费强大的电脑锁屏工具,中文绿色免安装