最近接手的B端项目选择了vue来做,此项目使用element ui Message等为组件 望周知

需求
此次B端SPA项目把ak存在localstorage中
1.登陆的跳转利用全局钩子router.beforeEach
//router.js
router.beforeEach((to, from, next) => {
// 若userkey不存在并且前往页面不是登陆页面,进入登陆
// 若userkey存在并且前往登陆页面,进入主页
const userKey = localStorage.getItem('userKey')
if (!userKey && to.path !== '/login') {
next({
path: '/login',
query: { redirect: to.fullPath }
})
} else if (userKey && to.path === '/login') {
next({ path: '/' })
} else {
next()
}
})
上面使用了query带上目标参数
例子:#/login?redirect=%2Fapp
在登陆提交处还得对redirect参数进行处理
//若验证成功跳转
var redirect = decodeURIComponent(this.$route.query.redirect || '/')
self.$router.push({
// 你需要接受路由的参数再跳转
path: redirect
})
需求
若ak失效后发送请求时弹出失效弹出框返回到登陆页面
以下做了个简单的例子若请求返回的参数带0则登陆失效
// respone拦截器
axios.interceptors.response.use(
response => {
console.log(response)
const data = response.data
if (data.status === 0) {
MessageBox.alert('你已被登出,可以取消继续留在该页面,或者重新登录', '确定登出', {
confirmButtonText: '确定',
type: 'warning'
}).then(() => {
localStorage.clear()
router.replace({
path: '/login'
})
return
}).catch(() => {
localStorage.clear()
router.replace({
path: '/login'
})
})
} else {
return response
}
},
error => {
if (error && error.response) {
switch (error.response.status) {
case 400:
error.message = '请求错误'
break
case 401:
error.message = '未授权,请登录'
break
case 403:
error.message = '拒绝访问'
break
case 404:
error.message = (process.env.NODE_ENV === 'production' ? `请求地址出错` : `请求地址出错: ${error.response.config.url}`)
break
case 408:
error.message = '请求超时'
break
case 500:
error.message = '服务器内部错误'
break
case 501:
error.message = '服务未实现'
break
case 502:
error.message = '网关错误'
break
case 503:
error.message = '服务不可用'
break
case 504:
error.message = '网关超时'
break
case 505:
error.message = 'HTTP版本不受支持'
break
default:
}
Message({
message: error.message,
type: 'error',
duration: 5 * 1000
})
}
return Promise.reject(error)
}
)
需求
手动登出
loginOut() {
var self = this
this.$confirm('您确定要退出吗?', '退出管理平台', {
confirmButtonText: '确定',
cancelButtonText: '取消'
}).then(() => {
const info = {
'userkey': localStorage.getItem('userKey')
}
self.$store.dispatch('LogOut', info).then(() => {
self.$router.push({ path: '/login' })
}).catch(() => {
})
}).catch(() => {
})
}
简单的登陆登出结束啦~
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# vue
# 登陆登出
# 登出
# vue登陆
# Vue2.0 axios前后端登陆拦截器(实例讲解)
# vue+axios新手实践实现登陆的示例代码
# 详解用vue.js和laravel实现微信授权登陆
# 基于vue-cli3和element实现登陆页面
# Vue 前端实现登陆拦截及axios 拦截器的使用
# 详解vue2.0+axios+mock+axios-mock+adapter实现登陆
# 详解springboot和vue前后端分离开发跨域登陆问题
# Vue 页面权限控制和登陆验证功能的实例代码
# vue+koa2实现session、token登陆状态验证的示例
# vue实现登陆功能
# 跳转
# 弹出
# 周知
# 首页
# 已被
# 不受
# 不存在
# 还得
# 来做
# 请登录
# 管理平台
# 不可用
# 大家多多
# 选择了
# 使用了
# 拦截器
# getItem
# amp
# login
# path
相关文章:
建站三合一如何选?哪家性价比更高?
C++如何编写函数模板?(泛型编程入门)
微信推文制作网站有哪些,怎么做微信推文,急?
如何通过商城自助建站源码实现零基础高效建站?
如何实现建站之星域名转发设置?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
内部网站制作流程,如何建立公司内部网站?
如何自定义建站之星网站的导航菜单样式?
如何快速重置建站主机并恢复默认配置?
如何快速配置高效服务器建站软件?
深圳防火门网站制作公司,深圳中天明防火门怎么编码?
如何在IIS中新建站点并配置端口与物理路径?
建站主机解析:虚拟主机配置与服务器选择指南
如何通过二级域名建站提升品牌影响力?
如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?
如何在景安云服务器上绑定域名并配置虚拟主机?
北京的网站制作公司有哪些,哪个视频网站最好?
名字制作网站免费,所有小说网站的名字?
如何高效配置香港服务器实现快速建站?
微信小程序制作网站有哪些,微信小程序需要做网站吗?
南平网站制作公司,2025年南平市事业单位报名时间?
平台云上自助建站如何快速打造专业网站?
如何在IIS管理器中快速创建并配置网站?
安云自助建站系统如何快速提升SEO排名?
招商网站制作流程,网站招商广告语?
网站制作哪家好,cc、.co、.cm哪个域名更适合做网站?
制作网页的网站有哪些,电脑上怎么做网页?
如何在自有机房高效搭建专业网站?
SAX解析器是什么,它与DOM在处理大型XML文件时有何不同?
怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?
如何通过商城免费建站系统源码自定义网站主题?
合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?
javascript基本数据类型及类型检测常用方法小结
如何在Windows 2008云服务器安全搭建网站?
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
整人网站在线制作软件,整蛊网站退不出去必须要打我是白痴才能出去?
建站之星如何通过成品分离优化网站效率?
建站之星代理平台如何选择最佳方案?
定制建站价位费用解析与套餐推荐全攻略
网站制作软件有哪些,制图软件有哪些?
,如何利用word制作宣传手册?
c++ stringstream用法详解_c++字符串与数字转换利器
广州建站公司哪家好?十大优质服务商推荐
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
C#怎么使用委托和事件 C# delegate与event编程方法
Bpmn 2.0的XML文件怎么画流程图
宁波自助建站系统如何快速打造专业企业网站?
免费视频制作网站,更新又快又好的免费电影网站?
儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?
*请认真填写需求信息,我们会在24小时内与您取得联系。