当前位置:首页 > 日记 > 正文

一种路由使用AngularJS的安全路由方法

一种路由使用AngularJS的安全路由方法
简介

因为它的出现,AngularJS用了很长时间。它是一个用于开发单页面应用的Javascript框架(SPA),它有一些很好的功能,如双向结合,教学,等。本文主要介绍角路由安全政策。它是一个客户端的安全框架,可以由角发展实现。我已经测试过。除了确保客户端路由的安全,你还需要确保服务器安全方面的访问。客户端安全策略有助于减少对服务器的额外的访问。但是,如果有人使用欺骗浏览器访问服务器,然后服务器端的安全策略应该能够拒绝未经授权的访问。在这篇文章中,我讨论客户机安全策略。

1在应用程序模块级别定义全局变量

定义应用程序的角色:

var角色= {
超级用户:0,
管理员:1,
用户:2
};
对应用程序定义进行未授权访问的路由:

无功routeforunauthorizedaccess = / someangularrouteforunauthorizedaccess;
2授权服务的定义

appmodule.factory('authorizationservice功能(合资源,$ Q,rootscope美元,美元的位置){
返回{
对会话的权限缓冲区,以避免后续请求停止访问服务器。
permissionmodel:{权限:ispermissionloaded:假} { },

PermissionCheck:功能(rolecollection){
返回承诺(承诺)。
VaR q.defer美元递延=();

这里是一个指针,用于在指针中的承诺范围内保存/上部作用域。
无功parentpointer =这;

检查您是否可以从访问对象(登录用户的字符列表)访问服务。
如果(这。permissionmodel。ispermissionloaded){

检查当前用户是否访问当前路由。
this.getpermission(this.permissionmodel,rolecollection,延期);
{人}
如果您没有许可对象,我们将访问服务器访问。
是the'api / / permissionservice的Web服务的例子。

资源( / / permissionservice API),得到()。promise.then美元(功能(响应){)
当服务器返回后,我们开始填充一个权限对象。
parentpointer.permissionmodel.permission =响应;

将处理完全标志设置为true并存储在会话中的权限对象,
会话用户,我们可以在后续请求的路由中重用权限对象。
parentpointer.permissionmodel.ispermissionloaded =真;

检查当前用户是否必须具有基于角色的访问路由。
parentpointer.getpermission(parentpointer.permissionmodel,rolecollection,延期);
}
);
}
返回deferred.promise;
},

方法:检查当前用户是否有访问路径。
/ / 'permissionmodel'preserves当前用户的角色信息从服务器返回的
/ / 'rolecollection'saves角色可以访问现有的路由表
/ / 'deferred'is对象用来处理承诺
GetPermission: function (permissionModel, roleCollection, deferred) {
无功ifpermissionpassed = false;

Angular.forEach(rolecollection、功能(作用){
开关(角色){
案例roles.superuser:
如果(permissionmodel。许可。issuperuser){
ifpermissionpassed =真;
}
打破;
Case roles.admin:
如果(permissionmodel。权限。管理员){
ifpermissionpassed =真;
}
打破;
案例roles.user:
如果(permissionmodel。权限。用户){
ifpermissionpassed =真;
}
打破;
违约:
ifpermissionpassed = false;
}
});
如果(!ifpermissionpassed){
如果用户没有必要的权限,我们就让用户访问页面。
location.path美元(routeforunauthorizedaccess);
因为这将延迟处理,在此期间页面位置可能会更改,
我们将监控 / / $ locationchangesuccess事件
当事件发生时,发出承诺。
rootscope美元。美元(美元locationchangesuccess功能(下,电流){
deferred.resolve();
});
{人}
deferred.resolve();
}
}
};
});
3加密的路由

然后让我们努力加密路由:

无功appmodule = angular.module(appmodule
。配置(功能(routeprovider美元,美元locationprovider){
routeprovider美元
当( / superuserspecificroute,{
TemplateUrl: /模板/超级用户。HTML / / /视图模板路径
caseinsensitivematch:真,
控制器:'superusercontroller ' / /角路由控制器
解决:{
我们将在上面的工作中使用我们的,调用授权服务。
决心是一个很好的特点,角,可以确保
只有在下文提到后才处理该承诺。
将 / /控制器(在这种情况下superusercontroller)应用于路由。
功能权限:(authorizationservice,$路线){
返回authorizationservice.permissioncheck({角色。超级用户});
},
}
})
当( / userspecificroute,{
TemplateUrl: / /用户HTML模板,
caseinsensitivematch:真,
控制器:'usercontroller,
解决:{
功能权限:(authorizationservice,$路线){
返回authorizationservice.permissioncheck({角色。用户});
},
}
})
当( / adminspecificroute,{
TemplateUrl: / /管理模板HTML,
caseinsensitivematch:真,
控制器:'admincontroller,
解决:{
功能权限:(authorizationservice,$路线){
返回authorizationservice.permissioncheck({角色。管理});
},
}
})
当( / adminsuperuserspecificroute,{
TemplateUrl: / / adminsuperuser HTML模板,
caseinsensitivematch:真,
控制器:'adminsuperusercontroller,
解决:{
功能权限:(authorizationservice,$路线){
返回authorizationservice.permissioncheck({ roles.admin,超级用户角色。});
},
}
});
});

相关文章

QQ空间(android)软件在手机上的功能

QQ空间(android)软件在手机上的功能

常见问题,空间,机上,在手,功能,手机的QQ空间(android)软件版本具有以下功能: 1。它可以由实时的朋友动态更新。 2,高品质的朋友照片浏览; 三.看看细节,写出一站式的社交体验。 4、好友动态可以快速评论、回复和转发。 5,一个新的个人主页,你可…

WPS如何自动生成一个目录WPS文本教

WPS如何自动生成一个目录WPS文本教

文本,教程,自动生成,目录,电脑软件,WPS如何自动生成目录目录被认为是许多WPS用户的一个大问题。这里有一个教程,用于那些不使用WPS自动生成目录的人。让我们快速看看。 第一步,先插入标题,是一个大的列和下面的小目录,先看看目录生成后的效果…

在对数math.log使用教程()方法在Java

在对数math.log使用教程()方法在Java

方法,使用教程,对数,电脑软件,math,这个方法返回一个数字的自然对数(基E)。如果数字的值是负数,返回值总是楠。 语法 math.log(X); 下面是参数的详细信息: X:一个数字。 返回值: 返回一个数字的自然对数(基E)。 实例uff1a javascript数学日志()方法 VaR…

jQuery通过扩展实现抖动的方式

jQuery通过扩展实现抖动的方式

扩展,抖动,方式,电脑软件,jQuery,本文阐述了jQuery通过扩展实现抖动效果的方法,供大家参考,具体实现方法如下: 1。Javascript代码如下所示: 复制代码如下:jquery.fn.shake =功能(intshakes / * * /量的摇,摇intdistance / * * /距离,intduration / *时…

PS图象处理软件产生一片由参考线通

PS图象处理软件产生一片由参考线通

参考,删除,统治者,图象,处理软件,本教程介绍朋友到PS图象处理软件,通过尺代/移动/删除参考线,参考线,从创建切片技巧。这个教程很好。推荐给你最喜欢的朋友。 这一经验是关于通过参考线生成切片的应用。这个应用程序将许多照片分割成矩形区域…

选择jQuery复选框实现方法

选择jQuery复选框实现方法

复选框,方法,选择,电脑软件,jQuery,本文介绍了如何实现复选框jQuery示例,以供大家参考,具体分析如下: 选择和取消选择通过复选框的所有操作,如果采用切换,就会出现问题,无法显示复选框的对勾。 使用单击事件并根据选中的属性进行判断。 实例: $…

PS打造精美水晶人物效果教程

PS打造精美水晶人物效果教程

教程,精美,水晶,效果,人物,本教程是介绍给朋友的,用ps来制作漂亮的水晶效果程序。教程生成的文本非常漂亮,方法非常简单。推荐一起学习。 本教程是介绍给朋友的,用ps来制作漂亮的水晶效果程序。很适合初学者学习和推荐。 方法/步骤 1,白色文…

PS合成生动的,创造性的两个人的头部

PS合成生动的,创造性的两个人的头部

创造性,生动,效果,电脑软件,PS,两种曝光方法不难,关键是创意,就像下面的课程一样,作者完美地将一幅生动的画面融入到人物的头部位置,并认为人物的思维变成了画面。 两种曝光方法不难,关键是创造力,就像下面的课程一样,作者完美地将生动的画面融入…

经典名人励志个性签名经典签名

经典名人励志个性签名经典签名

经典,个性签名,名人,电脑软件,因为每个网民写不同的字,有谚语,谚语,调侃语句等,也用图片和动画作为签名,充满个性和风格各异。因此,它被称为个人签名。签名是一种视觉符号,代表个人信息和个人审美兴趣,如社会、法律、合同等,也称签名和签名。你想拥…

用PS设计精美的游戏按钮

用PS设计精美的游戏按钮

按钮,精美,游戏,电脑软件,PS,本教程是向大家介绍使用ps制作游戏按钮,效果非常细腻,因为本教程对设计步骤不是很详细,所以学习者需要有一些ps技巧,希望大家能喜欢。 这个PS制作了精美的游戏按钮教程,我在浏览网页的时候就看到了。制作效果非常好,…

七最常用PPT布局制作教程ppt制作教

七最常用PPT布局制作教程ppt制作教

布局,制作教程,最常用,电脑软件,PPT,PowerPoint制作教程是所有你关心的技能!事实上,当人们问我如何设计一个好的PPT时,我们可以使PPT成为一门引人注目的艺术!我经常说:PPT最重要的是模仿别人,模仿别人优秀的PPT制作方法,积累自己的设计风格。当然,…

excel表格excel表的基本操作过程

excel表格excel表的基本操作过程

操作过程,表格,电脑软件,excel,excel表格的功能非常强大。我们可以用它来收集记录数据,或者做简单的统计计算。有许多可用的函数,如求和、平均数、排序等。现在我将简要地谈谈它的基本操作。 打开excel表 点击电脑左下角开始;选择所有程序微软…