vue登录路由验证的实现
vue的项目的登录状态如果用vuex状态管理,页面一刷新vuex管理的状态就会消失,这样登录路由验证就没有意义了。可以将登录的状态写到web Storage中进行存储管理。
步骤如下:
1、在登录组件里,将登录状态写入web Storage里。(一般写入session Storage,会话关闭,存储数据自动删除)
if('登录成功') {sessionStorage.setItem('accessToken' , 写入登录成功返回的登录令牌或者自定义的判断字符串) }
2、在需要登录验证的路由元信息里加入登录验证标识requiresAuth(自定义)
[html] view plain copy
routers: [ { path: '/listInfo', name: 'listInfo', component: listInfo, meta: { requiresAuth: true } } ]
3、在全局钩子函数beforeEach中验证页面是否需要登录
router.beforeEach((to, from, next) => { //to即将进入的目标路由对象,from当前导航正要离开的路由, next : 下一步执行的函数钩子 if(to.path === '/login') { next() } // 如果即将进入登录路由,则直接放行 else { //进入的不是登录路由 if(to.meta.requiresAuth && !sessionStorage.getItem('accessToken')) {next({ path: '/login' })} //下一跳路由需要登录验证,并且还未登录,则路由定向到 登录路由 else { next() }} //如果不需要登录验证,或者已经登录成功,则直接放行 }
注意点:beforeEach这个全局钩子要放到全局组件的前面,放到全局组件的后面,Vue实例已经加载完成。这时候直接在浏览器的地址栏输入要去的路由,则不会定向到登录路由。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
Vue-router路由判断页面未登录跳转到登录页面的实例
如下所示: router.beforeEach((to, from, next) => { if (to.matched.some(record => record.meta.requireAuth)){ // 判断该路由是否需要登录权限 if (token) { // 判断当前的token是否存在 next(); } else { next({ path: '/login', query: {redirect: to.fullPath} // 将跳转的路由path作为参数,登录成功后跳转到该
-
Vue利用路由钩子token过期后跳转到登录页的实例
在Vue2.0中的路由钩子主要是用来拦截导航,让它完成跳转或前取消,可以理解为路由守卫. 分为全局导航钩子,单个路由独享的钩子,组件内钩子. 三种 类型的钩子只是用的地方不一样,都接受一个函数作为参数,函数传入三个参数,分别为to,from,next. 其中next有三个方法 (1)next(); //默认路由 (2)next(false); //阻止路由跳转 (3)next({path:'/'}); //阻止默认路由,跳转到指定路径 这里我使用了组件内钩子进行判断token过期后跳转到登录页,
-
vue路由跳转时判断用户是否登录功能的实现
通过判断该用户是否登录过,如果没有登录则跳转到login登录路由,如果登录则正常跳转. 一丶首先在用户登录前后分别给出一个状态来标识此用户是否登录(建议用vuex): 简单用vuex表示一下,不会可以自己去官网多看看: import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex); var state = { isLogin:0, //初始时候给一个 isLogin=0 表示用户未登录 }; const mutations = { cha
-
vue登录路由验证的实现
vue的项目的登录状态如果用vuex状态管理,页面一刷新vuex管理的状态就会消失,这样登录路由验证就没有意义了.可以将登录的状态写到web Storage中进行存储管理. 步骤如下: 1.在登录组件里,将登录状态写入web Storage里.(一般写入session Storage,会话关闭,存储数据自动删除) if('登录成功') {sessionStorage.setItem('accessToken' , 写入登录成功返回的登录令牌或者自定义的判断字符串) } 2.在需要登录验证的路由元
-
vue 登录滑动验证实现代码
在没给大家讲解实现代码之前,先给大家分享效果图: 之前别人都是用jq写的,自己整理了一下开始使用 <el-form-item label="验证"> <div class="form-inline-input"> <div class="code-box" id="code-box"> <input type="text" name="code"
-
vue中路由验证和相应拦截的使用详解
在web项目中,经常需要根据是否登录进行路由的验证和相应的拦截. 首先,在vuex里的store.js里边写一个存放登录状态,代码如下 import Vue from 'vue' import Vuex from 'vuex' Vue.use(Vuex) export default new Vuex.Store({ state: { user: false }, mutations: { // 登录 login (state, user) { state.user = user }, // 退
-
Vue 权限控制的两种方法(路由验证)
下面介绍两种权限控制的方法: 路由元信息(meta) 动态加载菜单和路由(addRoutes) 路由元信息(meta) 如果一个网站有不同的角色,比如 管理员 和 普通用户 ,要求不同的角色能访问的页面是不一样的 这个时候我们就可以 把所有的页面都放在路由表里 ,只要 在访问的时候判断一下角色权限 .如果有权限就让访问,没有权限的话就拒绝访问,跳转到404页面 vue-router 在构建路由时提供了元信息 meta 配置接口,我们可以在元信息中添加路由对应的权限,然后在路由守卫中检查相关权限,
-
vue 利用路由守卫判断是否登录的方法
1.在router下的index.js 路由文件下,引入相关需要文件: import Vue from 'vue' import Router from 'vue-router' import {LOGIN} from '../common/js/islogin' import HelloWorld from '@/components/HelloWorld' import Login from '@/page/Login' import Index from '@/page/index/ind
-
vue登录注册及token验证实现代码
在大多数网站中,实现登录注册都是结合本地存储cookie.localStorage和请求时验证token等技术.而对于某些功能页面,会尝试获取本地存储中的token进行判断,存在则可进入,否则跳到登录页或弹出登录框. 而在vue单页中,我们可以通过监控route对象,从中匹配信息去决定是否验证token,然后定义后续行为. 具体实现代码如下: 1. 利用router.beforeEach钩子, 判断目标路由是否携带了相关meta信息 // router.js import Vue from 'v
-
vue-router beforeEach跳转路由验证用户登录状态
使用vue判断验证用户登录状态 导航钩子类似于生命周期钩子,包含路由进入前,进入后,更新时,退出前等几个周期,主要用于控制导航的前进后退或跳转等. 其中router.beforeEach就是路由进入前的周期,同时有路由的来源和去向两个参数,可以判断和控制当前路由的走向和重定向. 一般router.beforeEach配合vuex全局状态储存使用,验证用户登录状态.也可以结合sessionStorage 和localStorage使用,原理相同. 用户登录状态验证 路由配置 定义需要判断登录状态的
-
vue 设置路由的登录权限的方法
index.js 将需要登录权限的路由设置meta属性 meta:{requireAuth:true}, main.js 在main.js内直接写对路由的验证 router.beforeEach((to, from, next) => { if (to.matched.some(record => record.meta.requireAuth)){ // 判断该路由是否需要登录权限 if (sessionStorage.getItem("access_token")) {
-
vue在路由中验证token是否存在的简单实现
1. 在router/index.js进行验证 2. 代码如下: import Vue from 'vue' import Router from 'vue-router' import Login from '@/components/common/Login'; ...... Vue.use(Router) const router = new Router({ routes: [{ path: '/', name: Login, component: Login, }, { path: '
随机推荐
- JavaWeb文件上传下载实例讲解(酷炫的文件上传技术)
- json中换行符的处理方法示例介绍
- ThinkPHP快速入门实例教程之数据分页
- 浅谈PHP值mysql操作类
- ASP基础入门第五篇(ASP脚本循环语句)
- Js操作树节点自动折叠展开的几种方法
- 详解Java中的增强 for 循环 foreach
- 关于onchange事件在IE和FF下的表现及解决方法
- 基于jQuery的图片大小自动适应实现代码
- 基于Layer+jQuery的自定义弹框
- 详解vue-cli项目中用json-sever搭建mock服务器
- node.js中的buffer.Buffer.byteLength方法使用说明
- 详解linux 关机命令总结
- Android中PathMeasure仿支付宝支付动画
- Spring Boot 实例代码之通过接口安全退出
- Python中协程用法代码详解
- mpvue小程序循环动画开启暂停的实现方法
- vue中获取滚动table的可视页面宽度调整表头与列对齐(每列宽度不都相同)
- Win10 IIS 安装.net 4.5的方法
- vue 根据数组中某一项的值进行排序的方法