最近接手的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
相关文章:
如何用5美元大硬盘VPS安全高效搭建个人网站?
TestNG的testng.xml配置文件怎么写
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
山东云建站价格为何差异显著?
如何选择建站程序?包含哪些必备功能与类型?
北京网页设计制作网站有哪些,继续教育自动播放怎么设置?
如何快速生成专业多端适配建站电话?
公司门户网站制作流程,华为官网怎么做?
如何挑选优质建站一级代理提升网站排名?
建站之星图片链接生成指南:自助建站与智能设计教程
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
导航网站建站方案与优化指南:一站式高效搭建技巧解析
微网站制作教程,不会写代码,不会编程,怎么样建自己的网站?
如何在Windows服务器上快速搭建网站?
如何快速搭建高效WAP手机网站?
专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?
如何在橙子建站中快速调整背景颜色?
建站主机系统SEO优化与智能配置核心关键词操作指南
单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?
如何获取免费开源的自助建站系统源码?
,购物网站怎么盈利呢?
小建面朝正北,A点实际方位是否存在偏差?
建站之星CMS五站合一模板配置与SEO优化指南
南京网站制作费用,南京远驱官方网站?
如何续费美橙建站之星域名及服务?
实例解析Array和String方法
Python路径拼接规范_跨平台处理说明【指导】
如何在企业微信快速生成手机电脑官网?
c# 在ASP.NET Core中管理和取消后台任务
详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
如何注册花生壳免费域名并搭建个人网站?
如何高效配置香港服务器实现快速建站?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
重庆市网站制作公司,重庆招聘网站哪个好?
建站之星如何实现PC+手机+微信网站五合一建站?
如何在VPS电脑上快速搭建网站?
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
如何配置FTP站点权限与安全设置?
如何用y主机助手快速搭建网站?
,巨量百应是干嘛的?
如何通过西部建站助手安装IIS服务器?
公司网站的制作公司,企业网站制作基本流程有哪些?
南阳网站制作公司推荐,小学电子版试卷去哪里找资源好?
定制建站哪家更专业可靠?推荐榜单揭晓
建站之星五站合一营销型网站搭建攻略,流量入口全覆盖优化指南
武清网站制作公司,天津武清个人营业执照注销查询系统网站?
如何制作算命网站,怎么注册算命网站?
微网站制作教程,我微信里的网站怎么才能复制到浏览器里?
唐山网站制作公司有哪些,唐山找工作哪个网站最靠谱?
*请认真填写需求信息,我们会在24小时内与您取得联系。