vue2版本《后台管理模式》(中)

本文介绍了在Vue2项目中如何创建utils和api文件夹,设置token验证,使用axios拦截器,封装API,以及登录页面的输入框格式验证。通过qs库处理URL与对象的转换,并详细说明了登录页面的逻辑,包括检查token是否存在以及正则验证输入信息。
摘要由CSDN通过智能技术生成


前言

上章链接:后台管理模式(上) 点击跳转

*接上章基础配置写完。本章继续开始编写登录页面,正文如下:
在这里插入图片描述


一、创建一个文件夹 utils 里面新增一个 setToken.js 文件(设置token验证)

/*
 * @Author: error: git config user.name && git config user.email & please set dead value or install git
 * @Date: 2022-11-25 11:07:56
 * @LastEditors: error: git config user.name && git config user.email & please set dead value or install git
 * @LastEditTime: 2023-01-01 15:49:12
 * @FilePath: \project-one\src\utils\setToken.js
 * @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 */
// 设置 token 值
export function setToken(tokenKey, tokenValue) {
   
    return localStorage.setItem(tokenKey,tokenValue)
}
// 获取 token 值
export function getToken(tokenKey) {
   
    return localStorage.getItem(tokenKey)
}
// 删除 token 值
export function removeToken(tokenKey) {
   
    return localStorage.removeItem(tokenKey)
}

二 、创建一个api文件夹 新增 service.js (axios拦截器)

import axios from 'axios'
// 引入 token 信息
import {
    getToken } from "@/utils/setToken";
import {
    Message } from 'element-ui';

const service = axios.create({
   
    // baseURL会自动加在接口地址上
    baseURL: "/api",
    // timeout 规定的请求时间
    timeout: 5000 // 指定请求的超时毫秒数,如果请求超过这个时间,那么请求就会中断。
})

// 添加请求拦截器
service.interceptors.request.use((config) => {
   
    // 在发送请求前做些什么
    // 获取并设置token
    // console.log(getToken('token'))
    // 在请求报文的头部,添加 token
    config.headers['token'] = getToken('token')
    return config
},(error) => {
   
    // 对请求错误做些什么
    return Promise.reject(error)
})

// 添加响应拦截器
service.interceptors.response.use((response) => {
   
    // 对响应数据做些什么
    // console.log(response)
    // 对响应的数据,同一做出判断
    let {
    status, message } = response.data
    if (status !== 200) {
   
        Message({
   message: message || 'error', type: 'warning'})
    }
    return response
}, (error) => {
   
    // 对响应错误做点什么
    return Promise.reject(error)
})

export default service

三、在api文件夹里 新增一个 api.js 来接收数据(把api封装哪里需要某项数据直接引入就行)

这里解释一下 什么是 qs

qs.stringify 将对象解析为url; qs.parse() 将url转换成对象; 类似于 JSON.Stringify()

import service from "./service";
import qs from 'qs'

// 登录接口
export function login(data) {
   
    return service(
  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱敲码的老余

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值