设计

  • 在src目录下创建一个interceptor.js
  • 登录逻辑
    • 设置拦截,在发起请求前,先判断用户是否登录(在本栗中,即是否能够在浏览器缓存中找到token).
  • 登出逻辑
    • 对服务端传过来的数据进行拦截,判断其状态码是否为401(未登录或token过期)
    • 清空浏览器缓存中的token
    • 重定向到登入页面
  • interceptor.js
const axios = require('axios');// 参数是Vue实例
export default function(vm) {// 设置请求拦截器axios.interceptors.request.use(config => {// 获取tokenconst token = localStorage.getItem('token');if (token) { // 如果存在令牌则添加token请求头//      config.headers.token = token;   // 注: 使用Bearer Token规范config.headers.Authorization = `Bearer ${token}`;}return config;})// 响应拦截器axios.interceptors.response.use(null, err => {if (err.response.status === 401) {  // 没有登录,或者令牌过期// 清空vuex和localstoragevm.$store.dispatch('logout');// 跳转loginvm.$router.push('/login');}return Promise.reject(err);})
}

拦截使用

  • main.js
import Vue from 'vue'
import './cube-ui'
import App from './App.vue'
import router from './router'
import store from './store'
import interceptor from './interceptor'Vue.config.productionTip = false// 拦截器的初始化const app = new Vue({router,store,render: h => h(App)
}).$mount('#app')interceptor(app);

vue --- http拦截,登录登出的逻辑设计相关推荐

  1. 从零开始java安全权限框架篇(一):spring security配置登录登出的配置

    目录 一:安全权限框架的选取 二:功能 三:登录登出 四:代码注释 1.将登陆交由Spring security完成 2.前台明文密码加密,与数据库比对 3.关键配置 4.自定义用户异常 5.ajax ...

  2. 网易云信集成视频教程(四):如何快速实现iOS登录登出?

    上期我们介绍了如何通过SDK实现自定义消息,第四期视频教程我们将教大家如何快速实现iOS系统下IM登录登出. 第四期 如何快速实现iOS登录登出? 8分钟视频手把手教你接入 文档详解 前期准备 1. ...

  3. 网易云信集成视频教程(一):如何快速实现安卓登录登出?

    由于网易云信稳定.可靠的技术服务以及拥有深厚积淀的行业口碑,越来越多用户集成云信IM和音视频功能.为了提升用户集成效率,我们推出了一系列网易云信集成视频教程,希望帮助用户快速实现功能接入.第一期将为大 ...

  4. CAS 单点登录/登出 系统

    前言: 在我们的实际开发中,更多的是采用分布式系统.那么问题来了,对于分布式系统的登录问题,我们如何解决呢? 如果说我们在每一个系统中都要进行一次登录,那么用户体验度也就差的没法用了.以京东商城为例, ...

  5. [django项目] 实现用户登录登出功能

    用户登录登出功能 I. 功能需求分析 1>功能分析 1.1>流程图 1.2>功能接口 登录页面 登录功能 退出功能 II. 登陆页面 1>接口设计 1.1>接口说明 类目 ...

  6. linux 执行程序 注销,Linux登录登出的过程 | Soo Smart!

    最近一直遇到crontab执行脚本和手动执行结果不一样的问题.根据添加的echo语句已经确定crontab能够准时执行任务,可是脚本里的程序不能正确执行.唯一能确定的是环境变量问题,可是即使明确地写上 ...

  7. java php 单点登陆,cas实现单点登录,登出(java跟php客户端)(转)

    cas实现单点登录,登出(java跟php客户端)(转)cas实现单点登录,登出(java和php客户端) (转) 最近项目中需要做单点登录,客户端包含java和php,java有几个应用程序,php ...

  8. ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程

    ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程 原文:ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单 ...

  9. SpringBoot登录登出切面开发

    阅读本文约"2.5分钟" 本文开发环境是SpringBoot2.X版本. 对于系统而言(这里多指管理系统或部分具备登录登出功能的系统),登录登出是一个类权限验证的过程,现在一般是以 ...

最新文章

  1. IDC发布对话式人工智能白皮书|附下载
  2. 新国货美妆品牌数字营销能力升级“三步法”
  3. vue前端怎么导出图片_vue前端实现导出表格
  4. ES中搜索结果各属性说明介绍,以及搜索中的timeout机制讲解(来自学习资料,34节)
  5. sublimText3在ubuntu下的中文支持
  6. openHEVC在Windows下构建vs32/64位工程(vs2013)
  7. A useful link to learn PDF
  8. linux 开源oa系统,linux版64位免费OA办公系统4.17
  9. 小米5miui10android,小米8 Miui10.3 最新稳定版(10.3.5.0 9.0) 快过闪电 AI 人性化设置 冰箱 流畅 实用...
  10. dijkstra 路径搜索算法的c++简单实现
  11. 足球相声:我现在真的火了
  12. 停车还能360全方位影像_什么是360全景?
  13. 热血仙境服务器修改,热血仙境安卓首发服务器爆红 - 07073手机游戏
  14. nmap架构图_Nmap扫描教程之Nmap基础知识
  15. ffmpeg给视频添加文本
  16. Android 10 添加安装白名单和卸载黑名单
  17. MySQL数据库 锁
  18. MATLAB2018a Simulink生成CCS代码教程
  19. MAPE 平均绝对百分误差
  20. C#字母与ASCII码的转换

热门文章

  1. windows python安装opencv_关于OpenCV-Python安装(缺少ffmpeg):OpenCV-Python安装(缺少ffmpeg)-Windows...
  2. 参数调优为什么要采样_3年Java外包,内推阿里过关斩将,最后却倒在调优经验上! - Java架构师追风...
  3. altium pcb 信号高亮_在PCB设计中高效的放置元件技巧
  4. 网关和路由器的区别_5G工业路由器与5G DTU的区别介绍详解
  5. 李宏毅机器学习课程8~~~keras
  6. 机器学习之 weka学习(二)算法说明
  7. Anaconda3自带jupyter
  8. js实现替换指定字符后面的内容(包括指定字符)
  9. 20172325 2018-2019-1 《Java程序设计》第二周学习总结
  10. FileReader/FileWriter复制文件