vue的登陆验证及返回登录前页面实现
一、路由配置部分如下所示,
|
导出路由示例 let router = new VueRouter({ |
| routes: [ |
| // 登陆 |
| { name: 'login', path: '/login', component: Login }, |
| // 后台管理 |
| { name: 'admin', path: '/admin', component: Admin, children: [...goods] }, |
| ] |
| }); |
| // 添加路由前置守卫, 其实就是添加一个函数, 这个函数会在路由配置之前执行, 我们可以在这里添加一些登陆或者权限的校验 |
| // to与from是两个对象, 可以拿到url信息 |
| router.beforeEach((to, from, next) => { |
| // 通过to.name得知用户访问的是什么页面, 如果是admin相关页面, 那么继续判断用户有没有登陆 |
| // 有 => 调用next()通过访问, 没有 => 调用next({name: 'login'})跳转到登陆页面 |
| // 现在我们是在一个js模块当中, 并不是在vue组件中, 所以这里的this不是组件实例, 而是undefined, 无法this.$http与this.$api |
| Vue.prototype.$http.get(Vue.prototype.$api.islogin).then(res => { |
| let isLogin = false; |
| // 已登陆 |
| if(res.data.code == 'logined') { |
| isLogin = true; |
| } |
| // 如果访问登陆页面 |
| // 已登陆 => 为了用户友好体验, 自动跳转到后台管理 |
| // 未登陆 => 允许访问登陆页面 |
| if(to.name == 'login') { |
| if(isLogin) { |
| next({name: 'admin'}); |
| }else { |
| next(); |
| } |
| } |
| // 如果访问后台页面 |
| // 已登陆 => 允许访问后台页面 |
| // 未登陆 => 禁止访问, 自动跳转到登陆页面 |
| if(to.name != 'login') { |
| if(isLogin) { |
| next(); |
| }else { |
| // query用来设置url中的查询字符串, 我们这里把用户要访问的页面地址通过query记录下来 |
| // 将来用户登陆成功后, 再自动跳回这个地址 |
| next({name: 'login', query: {next: to.fullPath}}); |
| } |
| } |
| }) |
| }); |
| export default router; |
二,login 组件 配置部分
| 使用了路由插件之后,组件实例就有了该对象,对象有一个Push方法,可以进行路由跳转 |
| let nextPage = this.$route.query.next || '/admin'; |
| // 登陆成功后, 跳转到用户未登陆前要访问的页面 |
| this.$router.push({ path: nextPage }); |
vue的登陆验证及返回登录前页面实现的更多相关文章
- Identity Server 4登陆后返回登录前页面
- 登录成功返回登录前页面js代码
/*------ setCookie(name,value) -----------*/ function setCookie(name,value) { var Days = 30; //此 coo ...
- struts2登录后返回登录前的页面
在Action中添加 String getUrl() { return ServletActionContext.getRequest().getHeader("referer") ...
- 在Java web项目中防止用户注销后使用浏览器中的“后退”按钮返回注销前页面
一背景 公司安全整改, 要求:系统中对于关键业务操作应确保使用浏览器"后退"功能无法回到上一步操作界面. 提供:凭证提供所有被检查系统关键业务操作后回退视频,视频显示关键业务操作后 ...
- 解决session失效之后登陆后重新返回之前的页面
在全局拦截器设置保存之前的url存入session中 登陆之后的地址再重session中存 request只用作一次请求 如果页面跳转几次的话原来的url就不存在了建议存在session @Overr ...
- 微信扫码登陆,qq登陆,微博登陆等第三方登陆成功后返回原来的页面并进行跳转
原理很简单,主要是利用到window.open的第二个属性,name 前端: 原来的网页给window命名为 window.name="single" window.open(“第 ...
- PHPCMS登录后不是进入会员中心而是转入登录前页最新代码
phpcms比如会员在登录前是停留在下载页面的,但是下载页面是要求会员登录后才能下载,所以会员就有这个登陆过程,但是一般的会员系统是登录进会员中心的,就会有点体验不好 这里教大家修改下 能达到登录后 ...
- asp.net mvc 自定义全局过滤器 验证用户是否登录
一般具有用户模块的系统都需要对用户是否登录进行验证,如果用户登录了就可以继续操作,否则退回用户的登录页面 对于这样的需求我们可以通过自定义一个独立的方法来完成验证的操作,但是这样代码的重复率就大大提高 ...
- 2016-02-20WebForm登陆验证,判断用户是否登陆 PageBase类
http://blog.csdn.net/fanbin168/article/details/49404233 很多时候,WebFrom页面,我们需要判断用户是否已经登陆了.假如有很多页面,难道我们要 ...
随机推荐
- vue 生命周期详解
- 最小生成树--克鲁斯卡尔算法(Kruskal)
按照惯例,接下来是本篇目录: $1 什么是最小生成树? $2 什么是克鲁斯卡尔算法? $3 克鲁斯卡尔算法的例题 摘要:本片讲的是最小生成树中的玄学算法--克鲁斯卡尔算法,然后就没有然后了. $1 什 ...
- flask蓝图的简单使用
1.flask的简单使用 from flask import Flask # from flask import make_response app = Flask(__name__) app.con ...
- ubuntu系统的teamviewer的安装及使用
参考链接: 安装: https://blog.csdn.net/weixin_34613450/article/details/80541799 使用: https://jingyan.baidu.c ...
- elsticsearch在kibanna中的操作
#建立索引 PUT /es_note_tel{ "settings": { "number_of_shards": 1 }, "mappings&qu ...
- Spark SQL官网阅读笔记
Spark SQL是Spark中用于结构化数据处理的组件. Spark SQL可以从Hive中读取数据. 执行结果是Dataset/DataFrame. DataFrame是一个分布式数据容器.然而D ...
- java中的static
1.静态方法 在一个类中定义一个方法为static,那就是说,无需本类的对象即可调用此方法 声明为static的方法有以下几条限制: 1. 它们仅能调用其他的static 方法. 2· 它们只能访问s ...
- 「JOISC 2017 Day 3」幽深府邸
题解: 和hnoi2018day2t1基本一样 我想了半小时想出了一个很麻烦的做法 写了之后发现假掉了 刚开始想的是 先预处理出每个门要打开至少要在左边的哪个点$L[]$,右边的哪个点$R[]$ 对每 ...
- Cesium 中由 Logarithmic Depth Buffer 引起的模型显示不完整的问题
当 Cesium 单个模型过长时,会遇到某些视角模型显示不完整的问题,如下图所示: 经过在官方论坛上询问,该问题由 viewer.scene.logarithmicDepthBuffer 开启造成,关 ...
- 乌班图平台kurento +kurento-one2many-call+videojs-panorama+RICOH THETA实现VR直播
这个小项目是公司要求的,开发大佬找到的资源,让小弟搭建一下子.第一次体验VR视频效果,感觉很好. 下面将搭建过程简单写出来,有需求的可以参考下. 一.乌班图平台搭建 按照centos7的习惯搞了一下乌 ...