vue拦截器刷新登陆页面

编程入门 行业动态 更新时间:2024-10-25 16:30:24

vue拦截器刷新登陆<a href=https://www.elefans.com/category/jswz/34/1771336.html style=页面"/>

vue拦截器刷新登陆页面

因为需要进行登录判定,需要在任何一个页面任何一次http请求,增加对token的判断,如果token已过期或者不存在,需要跳转至登录页面。设置全局拦截器就可以一次性实现这个需要;在登录页请求的时候,将token放到sessionStorage;在main.js写上以下代码:

newVue({

el:'#app',

router,

render:h=>h(App)

})

Vue.http.interceptors.push((request,next)=>{

// 登录成功后将后台返回的TOKEN在本地存下来,每次请求从sessionStorage中拿到存 储的TOKEN值

let TOKEN=sessionStorage.getItem('token');

if(TOKEN){

// 如果请求时TOKEN存在,就为每次请求的headers中设置好TOKEN,后台根据headers中的TOKEN判断是否放行

request.headers.set('token',TOKEN);

}

next((response)=>{

if(response.body.code===10010){//与后台约定登录失效的返回码

let data=response.body.data

window.location.href=data

}

return response;

})

})

但是,这样设置拦截器的话,一刷新界面,就会出现问题了,请求的数据出不来,拦截器函数根本就进不去,token拿不到,咦,这怎么办,嘿嘿,把拦截器函数放到实例上面就可以了,先让拦截器执行哟:

Vue.http.interceptors.push((request,next)=>{

// 登录成功后将后台返回的TOKEN在本地存下来,每次请求从 sessionStorage中拿到存储的TOKEN值

let TOKEN=sessionStorage.getItem('token');

if(TOKEN){

// 如果请求时TOKEN存在,就为每次请求的headers中设置好TOKEN,后台根据headers中的TOKEN判断是否放行

request.headers.set('token',TOKEN);

}

next((response)=>{

if(response.body.code===10010){//与后台约定登录失效的返回码

var data=response.body.data

window.location.href=data

}

return response;

})

})

newVue({

el:'#app',

router,

render:h=>h(App)

})```

更多推荐

vue拦截器刷新登陆页面

本文发布于:2024-03-07 04:09:45,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1716811.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:页面   拦截器   vue

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!