Vue3---请求拦截器携带token
vue
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
项目地址:https://gitcode.com/gh_mirrors/vu/vue
免费下载资源
·
为什么要在请求拦截器携带Token?
Token作为用户标识,在很多个接口中都需要携带Token才可以正确获取数据,所以需要在接口调用时携带Token。另外,为了统一控制采取请求拦截器携带的方案
如何配置?
Axios请求拦截器可以在接口正式发起之前对请求参数做一些事情,通常Token数据会被注入到请求header中,格式按 照后端要求的格式进行拼接处理
//axios基础封装
import axios from "axios";
import {ElMessage} from "element-plus";
import {useUserStore} from "@/stores/user";
const httpInstance = axios.create({
baseURL:'https://pcapi-xiaotuxian-front-devtest.itheima.net', // 基地址
timeout:5000 // 超时器
})
// axios.create()方法可以执行多次,每次执行就会生成一个新的实例
// const httpInstance2 = axios.create({
// baseURL:'url2', // 基地址
// timeout:5000 // 超时器
// })
//拦截器
httpInstance.interceptors.request.use(config=>{
// 1. 从Pinia获取token数据
const userStore =useUserStore()
// 2. 按照后端的要求拼接token数据
const token = userStore.userInfo.token
if(token){
config.headers.Authorization = `Bearer ${token}`
}
return config
},e=>Promise.reject(e))
//响应器
httpInstance.interceptors.response.use(res=> res.data,e=>{
// 统一错误提示
ElMessage({
type:'warning',
message:e.response.data.message
})
return Promise.reject(e)
})
export default httpInstance
GitHub 加速计划 / vu / vue
82
16
下载
vuejs/vue: 是一个用于构建用户界面的 JavaScript 框架,具有简洁的语法和丰富的组件库,可以用于开发单页面应用程序和多页面应用程序。
最近提交(Master分支:4 个月前 )
9e887079
[skip ci] 2 个月前
73486cb5
* chore: fix link broken
Signed-off-by: snoppy <michaleli@foxmail.com>
* Update packages/template-compiler/README.md [skip ci]
---------
Signed-off-by: snoppy <michaleli@foxmail.com>
Co-authored-by: Eduardo San Martin Morote <posva@users.noreply.github.com> 6 个月前
更多推荐
已为社区贡献4条内容
所有评论(0)