vue路由权限认证

因为路由是前端配的,本质上是一个页面,此不可能通过后台来做拦截器。

在一个应用中,有用户无限制的访问一些页面,同时,还有一些登录后才有的权限。
比如有这样的路由表

12345678910111213141516171819202122232425262728293031
let router = new Router({	routes: [		{			path: '/login',			name: 'login',			component: Login		},		{			path: '/desk',			name: 'desk',			component: Desk,			children: [				{					path: 'public',					name: 'public',					component: Public				},				{					path: 'admin',					name: 'admin',					component: Admin				}			]		},		{			path: '/*',			name: 'index',			redirect: '/desk/public'		}	]});

这就路由表即是最简单的,有无权限访问页面和需要登录权限才可以访问的页面

可以在路由跳转前进行判断,用户是否有权进行页面的访 大专栏  vue路由权限认证问,这个是由前端来完成。
除此之外,任何前端的限制都可以被突破。因此在调用登录权限的页面接口时,需要后台做接口验证。

前端做的路由拦截

使用router.beforeEach((to, from, next) => {})来做验证

首先给需要权限的路由加上

123
meta: {	requireAuth: true}

然后

12345
router.beforeEach((to, from, next) => {	if (to.meta.requireAuth){		// 来获取此前设置的requireAuth值 	}})

那么根据什么来判断
一般登录后,后台返回token,前端将此token缓存,如果跳转路由前读取token,有值并且在有效期内,可以进行跳转,如果无效则进行跳转登录页面操作

前端缓存 token的地方,可以是

  • vuex
  • localStorage
  • cookie

后台接口的验证

前端在发送所有接口在request.header中添加auth字段,携带koken,后台来判断是否可以访问,如果正常则返回数据,否则返回状态码401未登录,前端根据这个状态码来进行登录页面的跳转。

因此做这个操作需要进行对前端接口请求进行拦截,下面是axios示例代码

整体示例代码

git

123
# serve with hot reload at localhost:9016npm run devnpm run server

原文地址:https://www.cnblogs.com/sanxiandoupi/p/11724057.html

时间: 2024-07-30 01:15:30

vue路由权限认证的相关文章

vue 路由权限

import Vue from 'vue' import Router from 'vue-router' import HelloWorld from '@/components/HelloWorld' import login from '@/components/login' import register from '@/components/register' Vue.use(Router) const router = new Router({ mode: 'history', ro

Restful风格wcf调用4——权限认证

写在前面 在前面的三篇文章,已经介绍了restful风格wcf,如何实现增删改查以及文件的上传下载操作.本篇文章将介绍一下,调用restful的权限认证的内容.在调用的接口,为了安全,总会需要对请求进行权限认证的.以防一些非法的操作. 系列文章 Restful风格wcf调用 Restful风格wcf调用2——增删改查 Restful风格wcf调用3——Stream 一个例子 在REST WCF中,我们可以利用 HttpHeader 来完成这一目标. 首先我们添加一个校验身份的一个方法. ///

.Net Mvc5Filter与权限认证扩展

WebForm 在做WebForm的时候,如果我们要实现某页面登陆后才能访问,这个非常容易实现 public partial class IndexForm : Page { protected void Page_Load(object sender, EventArgs e) { //检查是否登录(session/cookie),失败跳转登录,成功继续访问 } } 但是实际工作中,不会只有一个页面需要权限检查,当我们面对多个页面的时候,该如何处理呢?这个时候一般会采取下列这种处理方式: 1

Vue路由传递参数详细说明

前言:最近我跟同事在做一个BI系统,采用前后端分离.整个系统包括数据分析系统.运营支持.系统设置等多个子系统.数据分析系统其实就是做各种数据报表.数据统计.实时数据的系统,这里面其实整个页面就是一个模板,最上面是filter.第二级是统计图.最下面是table数据.所以在数据分析子系统中,只要配置一个路由就可以匹配所有页面,在系统中,我把这个为公用路由.至于公用路由权限如何鉴定其实很简单:获取到用户权限列表后,渲染出所有的权限菜单,但注意每次跳转时一定要进行权限校验,具体原因自行思考.说着有点跑

vue 路由知识点梳理及应用场景整理

最近做项目才发现,我确实对 vue-router 太不熟悉了,都只了解个简单用法就开始搞了,本来很简单的问题,都搞不清楚.现在重新看一遍文档,重新梳理一下. vue 路由的原理 说实话,路由我一直也就光顾着用,没认真思考过这个问题,还是那次人家面试问了这个,我才反应过来是应该好好的了解一下了. 无刷新跳转页面,是单页应用的一大优势,用户体验好,加载速度快,vue 路由的跳转就是无刷新的,它有两种形式,可以在定义路由的时候通过 mode 字段去配置,如果不配置这个字段,那么默认使用的就是 hash

drf 权限认证

目录 复习 前期准备 三大认证简介 AbstracUser源码分析 自定义User下的权限六表 models.py 到settings.py中注册 注意点: 执行数据迁移的俩条命令 创建超级用户 源码分析 复习 """ 视图家族 1.视图类:APIView.GenericAPIView APIView:作为drf的基础view:as_view()禁用csrf:dispatch()二次封装request.三大认证.解析.渲染.响应.异常等模块:一堆类属性,可以用来做全局或局部插

asp.net权限认证:Forms认证

摘要: 明天就除夕了,闲着也是闲着,特地总结一些关于.net下的权限认证的方法. 一.Forms认证示意图 Forms认证即是表单认证,需提供身份id和密码password的进行认证和授权管理. 应该是大家比较熟悉的一种,刚接触.net可能都会学学这个东西. 下面看看他的工作方式: 二.看图太乏味,我准备了一个demo 因为默认首页为:IndexController/Index,这个页面只要一行字 “Index”, 效果图: OK,页面没有做任何权限控制,显示正常. 接下来看看DefaultCo

asp.net权限认证:摘要认证(digest authentication)

asp.net权限认证系列 asp.net权限认证:Forms认证 asp.net权限认证:HTTP基本认证(http basic) asp.net权限认证:Windows认证 asp.net权限认证:摘要认证(digest authentication) 一.摘要认证由来 摘要认证是对基本认证的改进,即是用摘要代替账户密码,从而防止明文传输中账户密码的泄露 之前对摘要认证也不是很熟悉,还得感谢圆中的 parry 贡献的博文:ASP.NET Web API(三):安全验证之使用摘要认证(dige

关于ASP.NET MVC的权限认证的一些总结

最近在学ASP.NET MVC的权限认证的一些东西,上网搜索了一阵,发现网上的方法大多数是以下几类: 一.FormsAuthentication.SetAuthCookie(admin.Name, false)或者是FormsAuthenticationTicket 感受:感觉FormsAuthentication.SetAuthCookie这种方法重在检查是否有用户登录等,需要检查权限时,要调用this.User.Identity.IsAuthenticated方法来检查是否授权等,每次要检查