CN108319861A - 一种基于js平台判断权限与角色的方法 - Google Patents
一种基于js平台判断权限与角色的方法 Download PDFInfo
- Publication number
- CN108319861A CN108319861A CN201810331961.9A CN201810331961A CN108319861A CN 108319861 A CN108319861 A CN 108319861A CN 201810331961 A CN201810331961 A CN 201810331961A CN 108319861 A CN108319861 A CN 108319861A
- Authority
- CN
- China
- Prior art keywords
- user
- role
- page
- permission
- identification
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明涉及JS平台技术领域,特别涉及一种基于JS平台判断识别用户权限与角色的方法。本发明的方法是在用户登录系统后,从Session中获得用户ID;当用户进入首页时,在script标签里根据用户的ID号使用异步的方法从后台获取用户的权限标识与角色标识数据,然后根据所得到的标识数据封装hasPermission权限判断方法与hasRole角色识别方法,并在方法体内判断用户浏览当前页面所需的权限或角色是否在标志数据中,在的话返回true,不在则返回false;最后在页面中需要控制用户权限或角色的地方,调用这两个方法即可。本发明解决了网站前端页面不易使用JS语言来判断识别用户权限和角色的问题。
Description
技术领域
本发明涉及JS平台技术领域,特别涉及一种基于JS平台判断识别用户权限与角色的方法。
背景技术
在JS平台上不能使用权限管理标签来控制一个按钮或一个图标的访问权限,不能使用角色管理标签来控制用户访问一组按钮或菜单的访问权限;为了解决这些问题,需要实现一种可在脚本标签里判断当前用户所具权限或角色的方法。
发明内容
本发明解决的技术问题在于提供一种在JS平台判断识别用户权限与角色的方法;解决了在JS平台上不能调用权限标签来控制用户点击某些按钮、访问某些页面的权限问题。
本发明解决上述技术问题的技术方案是:
在用户登录系统后,从Session中获得用户ID;当用户进入首页时,在script标签里根据用户的ID号使用异步的方法从后台获取用户的权限标识与角色标识数据,然后根据所得到的标识数据封装hasPermission权限判断方法与hasRole角色识别方法,并在方法体内判断用户浏览当前页面所需的权限或角色是否在标志数据中,在的话返回true,不在则返回false;最后在页面中需要控制用户权限或角色的地方,调用这两个方法即可;从而解决了网站前端页面不易使用JS语言来判断识别用户权限和角色的问题。
所述的方法具体包括如下步骤:
步骤一、用户登录网站跳转到首页,从Session中获得用户的ID;
步骤二、在首页根据用户的ID异步请步请求服务器后台,得到用户的权限标志与角色标志数据;
步骤三、把标志数据分别保存到window中的perms与roles变量中;
步骤四、在common.js工具类中封装两个方法hasPermission(permission)与hasRole(role),判断用户浏览当前页面所需的权限或角色是否在标志数据中,在的话返回true,不在则返回false;
步骤五、最后在页面中需要控制用户权限或角色的地方,调用这两个方法即可。
本发明的有益效果:在用户登录系统后,从Session中获得用户ID;当用户进入首页时,在script标签里根据用户的ID号使用异步的方法从后台获取用户的权限标识与角色标识数据,然后根据所得到的标识数据封装hasPermission权限判断方法与hasRole角色识别方法,并在方法体内判断用户浏览当前页面所需的权限或角色是否在标志数据中,在的话返回true,不在则返回false;最后在页面中需要控制用户权限或角色的地方,调用这两个方法即可,从而达到有效地在脚本标签内控制用户访问权限的目的;有效解决了网站前端页面不易使用JS语言来判断识别用户权限和角色的问题。
附图说明
下面结合附图对本发明进一步说明:
图1为本发明的流程图。
具体实施方式
如图1所示,本发明采用如下步骤:
步骤一、用户登录网站跳转到首页,从Session中获得用户的ID;如:
//后台登录保存用户信息
@RequestMapping(value = "/login", method = RequestMethod.POST)
public String login(String account, String password) throws Exception{
try{
Subject subject = ShiroUtil.getSubject();
//sha256加密
password = MD5Util.encrypt(password, sysConstantService.findSalt());
UsernamePasswordToken token = new UsernamePasswordToken(account,password);
subject.login(token);
if (subject.isAuthenticated()) {
Session session = subject.getSession();
session.setAttribute(“currentUser”, getCurrentUser());
……
}
}
//在页面中得到userId
var userId = ${“currentUser.userId”};
步骤二、在首页根据用户的ID异步请步请求服务器后台,得到用户的权限标志与角色标志数据;如:
//初始化用户权限
$.getJSON("${ctx}/system/user/listUserPerms.action userId = userId ",function(json) {
var perms = [];
if(json.rows && json.rows.length>0){
$.each(json.rows, function (index, obj) {
perms.push(obj);
})
}
……
});
//初始化用户权限 $.getJSON("${ctx}/system/user/listUserRoles.action userId = userId ", function(json) {
var roles = [];
if(json.rows && json.rows.length>0){
$.each(json.rows, function (index, obj) {
roles.push(obj);
})
}
……
});
步骤三、把标志数据分别保存到window中的perms与roles变量中;如:
window.perms = perms.toString();
window.roles = roles.toString();
步骤四、在common.js工具类中封装两个方法hasPermission(permission)与hasRole(role),并在方法体内判断用户浏览当前页面所需的权限或角色是否在标志数据中,在的话返回true,不在则返回false;如:
//权限判断
function hasPermission(permission) {
if (isNullOrEmpty(window.parent.perms)) {
return false;
}
if (window.parent.perms.indexOf(permission) > -1) {
return true;
} else {
return false;
}
}
//权限角色
function hasRole(role) {
if (isNullOrEmpty(window.parent.roles)) {
return false;
}
if (window.parent.roles.indexOf(role) > -1) {
return true;
} else {
return false;
}
},
步骤五、最后在页面中需要控制用户权限或角色的地方,调用这两个方法即可。如:
//如果有清除的权限
if(hasPermission("permission:clear")) {
clearAll();
}
//如果管理的权限
if(hasRole("role:admin")) {
audit();
} 。
Claims (2)
1.一种基于JS平台判断识别用户权限与角色的方法,其特征在于:在用户登录系统后,从Session中获得用户ID;当用户进入首页时,在script标签里根据用户的ID号使用异步的方法从后台获取用户的权限标识与角色标识数据,然后根据所得到的标识数据封装hasPermission权限判断方法与hasRole角色识别方法,并在方法体内判断用户浏览当前页面所需的权限或角色是否在标志数据中,在的话返回true,不在则返回false;最后在页面中需要控制用户权限或角色的地方,调用这两个方法即可;从而解决了网站前端页面不易使用JS语言来判断识别用户权限和角色的问题。
2.根据权利要求1所述的解决了基于JS平台判断识别用户权限与角色的方法,其特征在于:所述的方法具体包括如下步骤:
步骤一、用户登录网站跳转到首页,从Session中获得用户的ID;
步骤二、在首页根据用户的ID异步请步请求服务器后台,得到用户的权限标志与角色标志数据;
步骤三、把标志数据分别保存到window中的perms与roles变量中;
步骤四、在common.js工具类中封装两个方法hasPermission(permission)与hasRole(role),判断用户浏览当前页面所需的权限或角色是否在标志数据中,在的话返回true,不在则返回false;
步骤五、最后在页面中需要控制用户权限或角色的地方,调用这两个方法即可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810331961.9A CN108319861A (zh) | 2018-04-13 | 2018-04-13 | 一种基于js平台判断权限与角色的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810331961.9A CN108319861A (zh) | 2018-04-13 | 2018-04-13 | 一种基于js平台判断权限与角色的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108319861A true CN108319861A (zh) | 2018-07-24 |
Family
ID=62897533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810331961.9A Withdrawn CN108319861A (zh) | 2018-04-13 | 2018-04-13 | 一种基于js平台判断权限与角色的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108319861A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753283A (zh) * | 2018-12-29 | 2019-05-14 | 北京辰安科技股份有限公司 | 处理前端页面的权限控制方法及装置 |
CN110830569A (zh) * | 2019-11-01 | 2020-02-21 | 国云科技股份有限公司 | 一种基于多云管理平台的页面权限访问层级控制方法 |
-
2018
- 2018-04-13 CN CN201810331961.9A patent/CN108319861A/zh not_active Withdrawn
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109753283A (zh) * | 2018-12-29 | 2019-05-14 | 北京辰安科技股份有限公司 | 处理前端页面的权限控制方法及装置 |
CN110830569A (zh) * | 2019-11-01 | 2020-02-21 | 国云科技股份有限公司 | 一种基于多云管理平台的页面权限访问层级控制方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9954855B2 (en) | Login method and apparatus, and open platform system | |
CN102045171B (zh) | 基于统一认证系统的登录方法 | |
Son et al. | The Postman Always Rings Twice: Attacking and Defending postMessage in HTML5 Websites. | |
US8869254B2 (en) | User verification using voice based password | |
US20120260322A1 (en) | Flexible authentication for online services with unreliable identity providers | |
CN105763635A (zh) | 一种信息处理方法、系统及服务器 | |
TW202109323A (zh) | 操作用戶識別方法、裝置及設備 | |
CN110718218A (zh) | 一种语音处理方法、装置、设备和计算机存储介质 | |
CN109359449B (zh) | 一种基于微服务的鉴权方法、装置、服务器及存储介质 | |
CN108319861A (zh) | 一种基于js平台判断权限与角色的方法 | |
US20160301685A1 (en) | System and method for web single sign-on through a browser extension | |
CN103731434A (zh) | 一种针对非授权访问的安全防范方法 | |
CN105354482A (zh) | 一种单点登录方法及装置 | |
CN103595611B (zh) | 即时通信应用的实现方法及系统、与设备 | |
CN110718219A (zh) | 一种语音处理方法、装置、设备和计算机存储介质 | |
CN106878260A (zh) | 单点登录实现方法及装置 | |
CN107835161B (zh) | 内外用户统一管理的方法、系统及计算机存储介质 | |
CN115941782B (zh) | 基于rpa与聊天机器人的消息推送方法及系统 | |
CN105141642B (zh) | 一种防止非法用户行为的方法及装置 | |
CN108683675B (zh) | 基于sso延长会话时长的报活方法 | |
CN111901289A (zh) | 一种身份认证的方法和装置 | |
Gao et al. | An OAuth2. 0-based unified authentication system for secure services in the smart campus environment | |
CN113010865B (zh) | 智慧教育平台的大数据基础组件安全管理方法及系统 | |
Veličković et al. | Web Applications Protection from Automated Attacks by the reCAPTCHA API | |
CN110248326B (zh) | 一种数据处理方法及其装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20180724 |
|
WW01 | Invention patent application withdrawn after publication |