本帖最后由 successit 于 2022-10-9 10:39 编辑
我们做的所有应用,设置权限一般有2种,一种是通过在服务端设置菜单及页面权限来控制应用各账号登录后的访问权限,当然还有一种是设置数据库的数据权限,这几种用的最多的估计就是菜单权限了,页面权限及数据权限,用的人都不多,因为设置起来比较繁琐
如上,如果只设置了菜单权限,那就会存在一个隐患,就是用户可以通过地址加页面名称的方式,直接进入到没有菜单权限对应的页面中,就是说菜单权限就失去了他的作用(不论是自带的菜单还是EL菜单),针对这种情形,我自己先弄了一个解决办法,也许大神们有更好的办法,大家一起交流交流,当然如果官方可以内置这个功能就最好了。。。
因为我的应用页面已经很多很多了,所以去到每个页面增加验证权限,有点不现实,不符合我一直很懒的精神,所以几经周折,用了全局JS来实现
PS:作为基本JS小白的我,也是在论坛里翻了好多资料借鉴才搞出来这么一段简单的东西
- //请在这个方法中写每个页面加载时的逻辑
- function pageLoaded()
- {
- const referrer = document.referrer
- const pagename = Forguncy.Page.getPageName()
- if(referrer === '' & pagename !="主页" & pagename !="首页" & pagename !="FGC_登录") {
- alert("对不起,当前页面访问方式不合法!");
- window.location.href="https://www.baidu.com";
- }
- }
- //用于第一页面加载
- Forguncy.Page.ready(function(){
- pageLoaded();
- });
- //用于非第一次页面加载
- function historyStatePushed(){
- setTimeout(function(){
- pageLoaded();
- }, 1000);
- }
- var originPushState = window.history.pushState;
- window.history.pushState = function(){
- originPushState.apply(this, arguments);
- historyStatePushed();
- };
复制代码
|