本文介绍了vue-resource请求实现http登录拦截或者路由拦截的方法,分享给大家,具体如下:
项目需求
- 项目是前后台分离,前端负责数据对接,以及业务逻辑的处理,后台只需要给相应的接口即可
- 后台会控制接口的授权情况(即,未登录的接口,统一返回401未授权状态码,前端根据vue-resource的拦截器拦截符合条件的状态,并做出相应的处理。)
- 以下为两个系统的登录页面,作为请求超时或者登录拦截的跳转页面
以上是登录超时,登录弹窗框自动弹出来
代码片段
路由文件
export default [ { name: 'root', path: '', component: function (resolve) { require(['你的vue文件路径地址'], resolve); }, children: [ { name: 'applicationLayout', path: '/app/applicationLayout/:appId', component: function (resolve) { require(['你的vue文件路径地址'], resolve); }, meta: { requireAuth: true, // 需要登录才能进入的页面可以增加一个meta属性 } } ] ]
main.js 入口文件中加入以下代码
const UNAUTHORIZED_CODE = 401; router.beforeEach((to, from, next) => { if (to.meta.requireAuth) { if (storage.get('platformUser')) { store.dispatch('loginUser', JSON.parse(storage.get('platformUser'))); //将用户信息存储到vuex中,供全局使用 next(); } else { store.dispatch('initLoginModal', {state: true}); //显示登录弹窗 next(); } } else { next(); } }); //拦截http请求中返回401状态码,并针对其显示登录弹窗 Vue.http.interceptors.push((request, next) => { next((response) => { if (response.body.status === UNAUTHORIZED_CODE) { //与后台约定登录失效的返回码 store.dispatch('initLoginModal', {state: true}); //显示登录弹窗 store.dispatch('removeUser'); //移出浏览器中存储的用户信息 } return response; }); });
以上便能实现登录之前针对某些特定路由的拦截,和后台接口授权失效时前端业务逻辑操作处理, 整篇文章仅作知识点积累,如有不妥之处,请多多包涵。希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“vue-resource请求实现http登录拦截或者路由拦截的方法”评论...
更新动态
2025年01月15日
2025年01月15日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]