猿记录

一个记录、分享的博客

您的位置:主页 > 技术专栏 > javascript > vue >

vue 基于axios登录简单的拦截demo

2018-01-22 11:09:06 作者:yxl 次阅读 vue

1、基于最简单的拦截,不基于token验证,我的另外一个demo有基于token的  地址
2、客服端(vue)的代码


import axios from "axios"
//这部分其实可以通过 vuex的存储的token啊或者路由的meta来检测也是可以的,这里只是简单的实现了
axios.interceptors.response.use(
response => {
return response;
},
error => {
if (error.response) {
     //我们是通过检测服务端返回来的status进行验证  这个要跟后台统一
if (error.response.status == 401) {
router.replace({
path: '/',
query: {redirect: router.currentRoute.fullPath}
})
}
}
return Promise.reject(error.response.data) // 返回接口返回的错误信息
}
);
3、服务端代码(nodejs)
//拦截
app.use(async (ctx,next)=>{
if(ctx.session.user){
await next()
}else{
         //这里检测的是不需要登录的路由,直接通过
if(ctx.path == '/login'){
await next()
}else{
//这里返回错误状态码 给前端
ctx.status = 401;
ctx.body = {
status:'10001',
msg:'当前未登录',
result:''
}
}
}
})






凡本站注明“本站”或“投稿”的所有文章,版权均属于本站或投稿人,未经本站授权不得转载、摘编或利用其它方式使用上述作品。

编辑:yxl 关键词: Vue
0

网友评论