路由权限思路:
1菜单栏/导航栏(一级权限)
在登录成功后,获取后端的权限数据, 根据权限数据,展示对应的路由导航或菜单即可;
2界面的控制
如果用户没有登录, 用户手动在地址栏输入路由地址,则需要跳转到登录界面
如果用户已经登录, 用户手动输入的非权限内的路由地址,则给他跳转到404界面
3按钮的控制(二级权限)
在页面中,有些账号有: 添加,删除,修改,增加等权限, 有些没有
没有权限的账号在这个页面只是可以浏览页面中的数据,需要对这些按钮 禁用or隐藏。
4请求和响应的控制 (这一步其实后端也会根据token判断身份信息, 来返回数据,可以省略)
如果用户通过非常规的手段(可能是同行), 比如通过浏览器f12将禁用的按钮disabled 改成false, 隐藏的按钮apacity:0改成了1,这些按钮就可以使用了,此时需要对按钮点击后发出的请求作出拦截
loginvue
homevue (elment-ui)
侧边导航栏
storejs
routerjs
动态路需两个地方调用:
1 loginvue 中登录成功后立即执行动态路由函数
2 appvue中, 在根组件中添加执行动态路由函数,这样每一次用户刷新,就会执行,否则刷新之后,动态路由就没了
思路3:按钮的控制(二级权限): 这里我是通过 自定义指令来实现 对按钮(增,删,改等二级权限按钮) 的显示隐藏。
更简单直接的方式,直接就在html中对button添加v-if显示隐藏即可
import '/utils/permissionjs' --> mainjs中引入文件, 嫌麻烦直接在mainjs中写
4 服务器返回状态码401, 代表token超时 or token被串改 or 未传token, 此时强制跳转到登录页重新登录
解决怎样设置QQ的空间动态权限的步骤如下:
1打开手机QQ,点击自己的头像或在手机屏幕向右滑动屏幕,调出左侧菜单栏。
2在左侧菜单栏中选择其中的设置。
3然后在设置菜单里找到联系人、隐私设置,点击选择打开。
4再其中选择动态权限设置选项,点击打开设置权限就行了。这样就解决了怎样设置QQ的空间动态权限的问题了。
就是一个基础框架的例子。
首先根据ID获取当前权限的菜单xml文件,一般将xml存储到数据库里面。然后通过xml文件去编辑菜单。
再将菜单添加到form界面上面,给你个简单例子。
public partial class TreeMenu : RadTreeView{
#region Field
private XDocument xDoc = null;
#endregion
#region Property
public XDocument XDoc
{
set
{
thisxDoc = value;
var items = xDocElement("Menu")Elements("MenuItem");
foreach (var item in itemsToList())
{
thisNodesAdd(thisCreateTreeNode(item));
}
}
}
#endregion
public TreeMenu()
{
InitializeComponent();
}
public TreeMenu(IContainer container)
{
containerAdd(this);
InitializeComponent();
thisNodeCheckedChanged += TreeMenu_NodeCheckedChanged;
}
#region Method
/// <summary>
/// 点击节点更换
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void TreeMenu_NodeCheckedChanged(object sender, RadTreeViewEventArgs e)
{
//throw new NotImplementedException();
RadTreeNode node = sender as RadTreeNode;
}
private RadTreeNode CreateTreeNode(XElement xel)
{
//string treeName = xelAttribute("Text")ValueToString();
RadTreeNode node = new RadTreeNode();
nodeText = xelAttribute("Text")ValueToString();
if (xelElements("MenuItem")Count() > 0)
{
foreach (var q in xelElements("MenuItem"))
{
nodeNodesAdd(thisCreateTreeNode(q));
}
}
nodeTag = xel;
return node;
}
#endregion
}
菜单事件部分肯定要用到反射,都是些基础的东西。
权限设置比较简单,在数据表设置一个权限字段,你可以使用字符数据即可,例如“一般”是普通用户、“专家”是专家、“管理员”是系统管理员,登录界面可以设置用户名、密码文本框,权限设置下拉框,判断用户名、密码、权限是否正确即可。
在登录后将权限存储为程序级变量,即在模块中设置程序级变量,达到主程序界面,获取权限,根据权限,设置菜单的可 *** 作性即可。
以上就是关于vue 动态路由/路由权限 解决方案全部的内容,包括:vue 动态路由/路由权限 解决方案、怎样设置QQ的空间动态权限、C#用XML文件做动态菜单(C/S模式)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)