CN108319861A - 一种基于js平台判断权限与角色的方法 - Google Patents

一种基于js平台判断权限与角色的方法 Download PDF

Info

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
Application number
CN201810331961.9A
Other languages
English (en)
Inventor
陈林
张来卿
庞严冬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhuhai Hengqin Shengda Zhaoye Technology Investment Co Ltd
Original Assignee
Zhuhai Hengqin Shengda Zhaoye Technology Investment Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhuhai Hengqin Shengda Zhaoye Technology Investment Co Ltd filed Critical Zhuhai Hengqin Shengda Zhaoye Technology Investment Co Ltd
Priority to CN201810331961.9A priority Critical patent/CN108319861A/zh
Publication of CN108319861A publication Critical patent/CN108319861A/zh
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing 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/2141Access 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平台判断识别用户权限与角色的方法;解决了在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;
步骤五、最后在页面中需要控制用户权限或角色的地方,调用这两个方法即可。
CN201810331961.9A 2018-04-13 2018-04-13 一种基于js平台判断权限与角色的方法 Withdrawn CN108319861A (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109753283A (zh) * 2018-12-29 2019-05-14 北京辰安科技股份有限公司 处理前端页面的权限控制方法及装置
CN110830569A (zh) * 2019-11-01 2020-02-21 国云科技股份有限公司 一种基于多云管理平台的页面权限访问层级控制方法

Cited By (2)

* Cited by examiner, † Cited by third party
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