VUE全局导航守卫、 请求、响应拦截器 的设置

文件设置参考地址:https://gitee.com/wang_yu5201314/headlines__news/tree/master/%E9%A1%B9%E7%9B%AE%E6%BA%90%E7%A0%81%E6%96%87%E4%BB%B6/src

文件夹 Router 文件夹 index.js 中设置 全局导航守卫
文件 mian.js 中设置 请求、响应拦截器

设置 请求、响应拦截器

// ************************* axios **************************************

import axios from 'axios'axios.defaults.baseURL = 'http://localhost:3000'
Vue.prototype.$axios = axios

// 请求拦截器

axios.interceptors.request.use(config => {// 拦截请求 , 给每个需要token请求的地方添加tokenlet token = localStorage.getItem('token')if (token) {config.headers.Authorization = token}return config
})

// 响应拦截器

axios.interceptors.response.use(res => {// console.log('响应被截胡了', res)const { message, statusCode } = res.dataif (message === '用户信息验证失败' && statusCode === 401) {// 1. 提示Toast.fail('token失效')// 2. 删除本地token 和 user_idlocalStorage.removeItem('token')localStorage.removeItem('user_id')// 3. 跳转 login// router.push('/login')router.push({name: 'login',params: {back: true,},})}return res
})

VUE全局导航守卫

// 全局导航守卫
// 说明 : 只要路由改变了就会走导航守卫 ( /login  => /user )
// to   : 将要访问哪里   ($route路由对象 to.path)  ★
// from : 从哪里来       ($route路由对象 from.path)
// next : 是否放行
//        next()  => 直接放行     ★
//        next(false)  => 不放行
//        next('/login')  => 像重定向 => 放行 => 去 /login  ★
router.beforeEach((to, from, next) => {// console.log('to', to.path)let token = localStorage.getItem('token')// 把需要拦截未登录访问的权限页面 全部都加到数组里面let autlUrlArr = ['/user', '/myfollow', '/mycomments', '/mystar']// 如果访问的是 /user  => 继续判断// if(to.path === '/user' || to.path)// if (autlUrlArr.indexOf(to.path) > -1) {if (autlUrlArr.includes(to.path)) {// 如果登录了 可以访问if (token) {next()} else {// 如果没有登录 跳转到登录页面next('/login')}} else {// 如果访问的是 /login  /register  => 永远可以next()}
})

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

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

相关文章

JRE System Library和 Referenced Libraries 的区别和来源

JRE System Library 安装jdk后,会有个目录叫做jrejre目录是核心类库,目录中装的是类库文件jre System Library顾名思义就表示系统类库文件 Referenced Libraries referenced libraries放的是你引用的jar包,这个不需要自己创建的,你…

ByteArray、16进制、字符串之间的转换

ByteArray、16进制、字符串之间的转换: package fengzi.convert {import flash.utils.ByteArray;public class ByteArrayTranslated{/**** 通过hax数据返回ByteArray* param hax 格式 "AA5A000100FF"***/public static functi…

js - (初中级)常见笔试面试题

1.用 js 实现一个深拷贝 2.用 js 写一个数组去重 3. 用 js 对字符串进行反转 4. 用 js 请求范围内的质数个数 5.用 js 求数组中出现最多的数及其出现次数

iOS 支付宝SDK接入详解

一,在支付宝开放平台下载支付宝SDK(https://openhome.alipay.com/platform/document.htm#down) https://doc.open.alipay.com/doc2/detail.htm?spma219a.7629140.0.0.HpDuWo&treeId54&articleId104509&docType1 二,添…

面试基本知识点

文章目录面-什么是SEO面 - cookie / localstorage / sessionstorage的区别面 - promise面试题面 - 柯里化函数面 - 函数节流面 - 函数防抖HTML / CSS 知识点1、讲讲盒模型(蚂蚁金服 2019.03 招行信用卡 2019.04 美团 作业帮)2、根据盒模型解释边距重叠&a…

Redis 热点key

压测报redis 热点问题 热点问题概述 产生原因 热点问题产生的原因大致有以下两种: 用户消费的数据远大于生产的数据(热卖商品、热点新闻、热点评论、明星直播)。 在日常工作生活中一些突发的的事件,例如:双十一期间某些…

移动IM开发那些事:技术选型和常见问题

最近在做一个iOS IM SDK,在内部试用的阶段,不断有兄弟部门或者合作伙伴过来问各种技术细节,所以统一写一篇文章记录,统一介绍下一个IM APP的方方面面,包括技术选型(包括通讯方式,网络连接方式,协议选择)和常见问题。 …

webstrom打开通过顶部浏览器打开网页,被跳转到默认主页

重新开始工作啦,希望以后认真一点,并把遇到的问题都记录下来,虽然是小小白,但能无意间帮助到别人就更开心了呀 通过webstrom打开本地的文件时,发现跳转到了默认主页上,吐槽下,有些主页真的超级流…

mockjs(接口服务代理)

mock官网:http://mockjs.com/ 一、搭建一个练习项目 1.利用vue的项目脚手架进行搭建 命令: vue create mock-demo 截图: 2.安装相关的依赖 命令: #使用 axios 发送 ajax npm install axios --save #使用 mock.js 产生随机数据…

MD5算法原理

MD5(单向散列算法) 的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。MD5功能:输入任意长度的信息,经过处理,输…

函数-函数进阶-装饰器流程分析

老王:算了,估计你也想不出来。。。学过嵌套函数没有? 你:yes,然后呢? 老王:想实现一开始你写的america login(america)不触发你函数的执行,只需要在这个login里面再定义一层函数&am…

制作手写签名

<!DOCTYPE html> <!-- saved from url(0056)http://hao2013.cn/canvas-special-master/brush/index.html --> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><title>签名板(支持移动…

python第五次作业——陈灵院

习题1&#xff1a;读入文件pmi_days.csv&#xff0c;完成以下操作&#xff1a;1.统计质量等级对应的天数&#xff0c;例如&#xff1a;优&#xff1a;5天良&#xff1a;3天中度污染&#xff1a;2天2.找出PMI2.5的最大值和最小值&#xff0c;分别指出是哪一天。 import csv impo…

iOS 二叉树相关算法实现

什么是二叉树&#xff1f; 在计算机科学中&#xff0c;二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”和“右子树”&#xff0c;左子树和右子树同时也是二叉树。二叉树的子树有左右之分&#xff0c;并且次序不能任意颠倒。二叉树是递归定义的&#xff0c;所…

vux 组件库首次使用安装

1、首先通过脚手架新建一个项目&#xff0c;过程略。 创建完项目后&#xff0c;在项目里安装vux&#xff0c; 通过命令 npm install vux --save 安装 2、安装vux-loader&#xff0c; 通过命令 npm install vux-loader --save-dev 安装&#xff08;vux文档没说明&#xff09; 3、…

@Component 和 @Bean 的区别

Spring帮助我们管理Bean分为两个部分&#xff0c;一个是注册Bean&#xff0c;一个装配Bean。完成这两个动作有三种方式&#xff0c;一种是使用自动配置的方式、一种是使用JavaConfig的方式&#xff0c;一种就是使用XML配置的方式。 Compent 作用就相当于 XML配置 Component pub…

js动态验证码获取

<!DOCTYPE html> <html lang"cn"> <head><meta charset"UTF-8"><title>短信验证码</title> </head> <body> <input type"number" id"tel" value"13303861063"> <…

Base64 算法原理,以及编码、解码【加密、解密】 介绍

Base64编码&#xff0c;是我们程序开发中经常使用到的编码方法。它是一种基于用64个可打印字符来表示二进制数据的表示方法。它通常用作存储、传输一些二进制数据编码方法&#xff01;也是MIME&#xff08;多用途互联网邮件扩展&#xff0c;主要用作电子邮件标准&#xff09;中…

js通过身份证获取年龄

// 获取用户的身份证号码let identityCard this.idNum.replace(/\s/g, "");//判断长度let len identityCard.length;//设置新的变量var strBirthday "";//根据长度获取年月日if (len 18) {strBirthday identityCard.substr(6, 4) "/" identi…

爬取豆瓣top250

#xpath #第一种方法 可在开发者工具中找到标签&#xff0c;右键copy xpath&#xff0c;有时需去掉tbody标签 #第二种方法 简单学习xpath&#xff0c;自己书写&#xff0c;掌握基本语法即可&#xff0c;简单的层级关系#先将csv文件以记事本打开&#xff0c;更改编码为ASNI&…