vue axios登录拦截
2017-10-16 16:13
176 查看
之前写了一篇axios的增删改查 现在在这个基础上添加一下axios拦截
之前做登陆的时候,我都是将用户名和密码存储在cookie里面,登出的时候,再清除cookie,现在有了axios,可以直接判断在当前页面,增加一个meta属性,属性为true,即已登录,为false,则跳转到其他页面。
首先在路由的js页面,分配路径,然后给user页面一个meta属性 requireAuth
在判断是否登录 没有则跳转到login页面
还有就是在api.js页面,加入element的loding 和 message
效果图(因为没有后台,所以只是模拟一下登录与未登录)
当屏蔽这一段meta时。user页面正常显示
当meta正常,user页面由于没有登录,所以显示login页面
之前做登陆的时候,我都是将用户名和密码存储在cookie里面,登出的时候,再清除cookie,现在有了axios,可以直接判断在当前页面,增加一个meta属性,属性为true,即已登录,为false,则跳转到其他页面。
首先在路由的js页面,分配路径,然后给user页面一个meta属性 requireAuth
在判断是否登录 没有则跳转到login页面
import Vue from 'vue' import Router from 'vue-router' import A from '../components/A' import B from '../components/B' import C from '../components/C' import User from '../components/User' import Login from '../components/Login' Vue.use(Router) const router = new Router({ routes: [ { path: '/', redirect:'A' }, { path: '/A', name: 'A', component:A }, { path: '/B', name: 'B', component:B }, { path: '/C', name: 'C', component:C },{ path: '/Login', name: 'Login', component:Login },{ path: '/User', name: 'User', // 需要登录才能进入的页面可以增加一个meta属性 meta: { requireAuth: true }, component:User }] }) // 判断是否需要登录权限 以及是否登录 router.beforeEach((to, from, next) => { if (to.matched.some(res => res.meta.requireAuth)) {// 判断是否需要登录权限 if (localStorage.getItem('username')) {// 判断是否登录 next() } else {// 没登录则跳转到登录界面 next({ path: '/Login', query: {redirect: to.fullPath} }) } } else { next() } }) export default router
还有就是在api.js页面,加入element的loding 和 message
import {Loading,Message} from 'element-ui' var loadingstatus // POST传参序列化 axios.interceptors.request.use((config) => { loadingstatus= Loading.service({fullscreen:true}) return config }, (error) => { loadinginstatus.close() Message.error({ message:'加载超时' }) return Promise.reject(error) }) // 返回状态判断 axios.interceptors.response.use((res) => { loadingstatus.close() return res }, (error) => { loadingstatus.close() Message.error({ message:'加载失败' }) return Promise.reject(error) })
效果图(因为没有后台,所以只是模拟一下登录与未登录)
当屏蔽这一段meta时。user页面正常显示
当meta正常,user页面由于没有登录,所以显示login页面
相关文章推荐
- angularjs给Model添加拦截过滤器,路由增加限制,实现用户登录状态判断
- Vue 实现登录拦截(三)
- 【ionic App问题总结系列】ionic登录拦截机制-使用Modal作为登录框
- struts2拦截器配置;拦截器栈;配置默认拦截器;拦截方法的拦截器MethodFilterInterceptor;完成登录验证
- 单点登录 - 关于CAS客户端的拦截请求和忽略/排除不需要拦截的请求URL的问题
- 验证是否登录再js打开新窗口无拦截
- App登录拦截示意图
- IE中ajax+jsp登录界面,由于缓存导致jsp过滤器与ajax请求被拦截的问题和解决
- Struts2拦截器的应用:未登录用户拦截(同时拦截ajax请求)
- vue+axios 前端实现登录拦截(路由拦截、http拦截)
- 记录问题:登录session过期,ajax请求被web security拦截,页面没有数据且没有重定向到login页面
- 【vue+axios】一个项目学会前端实现登录拦截
- vue+axios 前端实现登录拦截(路由拦截、http拦截)
- 关于cas-client单点登录客户端拦截请求和忽略/排除不需要拦截的请求URL的问题(不需要修改任何代码,只需要一个配置)
- Spring拦截器进行登录拦截
- flask使用session保存登录状态及拦截未登录请求代码
- jquery 跨域 异步请求 自定义头部 预检请求 spring mvc拦截处理 实现token单点登录
- struct2 拦截所有没有登录的用户,强行转到登录界面AuthorizationInterceptor
- vue+vuex+axios实现登录、注册页权限拦截
- Spring Security4.1.3实现拦截登录后向登录页面跳转方式(redirect或forward)返回被拦截界面