fes.js/guide/permisson.html

61 lines
24 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>权限管理 | Fes.js</title>
<meta name="generator" content="VuePress 1.5.4">
<meta name="description" content="中台应用前端快速解决方案">
<link rel="preload" href="/fes.js/assets/css/0.styles.54a65285.css" as="style"><link rel="preload" href="/fes.js/assets/js/app.d4a34833.js" as="script"><link rel="preload" href="/fes.js/assets/js/2.1380c702.js" as="script"><link rel="preload" href="/fes.js/assets/js/46.70c14108.js" as="script"><link rel="preload" href="/fes.js/assets/js/10.2329d47f.js" as="script"><link rel="prefetch" href="/fes.js/assets/js/100.c569829e.js"><link rel="prefetch" href="/fes.js/assets/js/101.4c4176fa.js"><link rel="prefetch" href="/fes.js/assets/js/102.ba7e3884.js"><link rel="prefetch" href="/fes.js/assets/js/103.ef62cdd7.js"><link rel="prefetch" href="/fes.js/assets/js/104.86034148.js"><link rel="prefetch" href="/fes.js/assets/js/105.3bb92ea5.js"><link rel="prefetch" href="/fes.js/assets/js/106.1df0d2ff.js"><link rel="prefetch" href="/fes.js/assets/js/107.b4c899e6.js"><link rel="prefetch" href="/fes.js/assets/js/108.5d6f1cb6.js"><link rel="prefetch" href="/fes.js/assets/js/109.3ed5c334.js"><link rel="prefetch" href="/fes.js/assets/js/11.f26621ac.js"><link rel="prefetch" href="/fes.js/assets/js/110.dce23dd6.js"><link rel="prefetch" href="/fes.js/assets/js/111.2476f0f8.js"><link rel="prefetch" href="/fes.js/assets/js/112.bd22c4d5.js"><link rel="prefetch" href="/fes.js/assets/js/113.ca15de1c.js"><link rel="prefetch" href="/fes.js/assets/js/114.957579ae.js"><link rel="prefetch" href="/fes.js/assets/js/115.024593d0.js"><link rel="prefetch" href="/fes.js/assets/js/116.d5cddf01.js"><link rel="prefetch" href="/fes.js/assets/js/117.046ca7d6.js"><link rel="prefetch" href="/fes.js/assets/js/118.11815117.js"><link rel="prefetch" href="/fes.js/assets/js/119.b20cef58.js"><link rel="prefetch" href="/fes.js/assets/js/12.85a9013e.js"><link rel="prefetch" href="/fes.js/assets/js/120.bcc0046b.js"><link rel="prefetch" href="/fes.js/assets/js/121.5670d1e6.js"><link rel="prefetch" href="/fes.js/assets/js/122.7a268c65.js"><link rel="prefetch" href="/fes.js/assets/js/123.91d512e1.js"><link rel="prefetch" href="/fes.js/assets/js/124.b184f22d.js"><link rel="prefetch" href="/fes.js/assets/js/125.2e43132d.js"><link rel="prefetch" href="/fes.js/assets/js/126.ee7d5e3d.js"><link rel="prefetch" href="/fes.js/assets/js/127.45531c4f.js"><link rel="prefetch" href="/fes.js/assets/js/128.32f0a2e5.js"><link rel="prefetch" href="/fes.js/assets/js/129.ef73662a.js"><link rel="prefetch" href="/fes.js/assets/js/13.15a3084c.js"><link rel="prefetch" href="/fes.js/assets/js/130.8df92d78.js"><link rel="prefetch" href="/fes.js/assets/js/131.f76b7077.js"><link rel="prefetch" href="/fes.js/assets/js/132.0af231cd.js"><link rel="prefetch" href="/fes.js/assets/js/133.d597ece5.js"><link rel="prefetch" href="/fes.js/assets/js/134.92e05e2b.js"><link rel="prefetch" href="/fes.js/assets/js/135.9fb556eb.js"><link rel="prefetch" href="/fes.js/assets/js/136.1f72abea.js"><link rel="prefetch" href="/fes.js/assets/js/137.56bccf1e.js"><link rel="prefetch" href="/fes.js/assets/js/138.5a51bcda.js"><link rel="prefetch" href="/fes.js/assets/js/139.b4c67904.js"><link rel="prefetch" href="/fes.js/assets/js/14.4deadb95.js"><link rel="prefetch" href="/fes.js/assets/js/140.cb5be1e8.js"><link rel="prefetch" href="/fes.js/assets/js/141.8ac7a23e.js"><link rel="prefetch" href="/fes.js/assets/js/142.18fed108.js"><link rel="prefetch" href="/fes.js/assets/js/143.770929a1.js"><link rel="prefetch" href="/fes.js/assets/js/144.6575df5c.js"><link rel="prefetch" href="/fes.js/assets/js/145.577f2f6b.js"><link rel="prefetch" href="/fes.js/assets/js/146.185eeeb6.js"><link rel="prefetch" href="/fes.js/assets/js/147.600622ee.js"><link rel="prefetch" href="/fes.js/assets/js/148.ed0ee1ce.js"><link rel="prefetch" href="/fes.js/assets/js/149.96e5521b.js"><link rel="prefetch" href="/fes.js/assets/js/15.43f80fe4.js"><link rel="prefetch" href="/fes.js/assets/js/150.7182a2d1.js"><link rel="prefetch" href="/fes.js/assets/js/151.026f2738.js"><link rel="prefetch" href="/fes.js/assets/js/152.a81d4dfe.js"><link rel="prefetch" href="/fes.js/assets/js/153.4b22b740.js"><link rel="prefetch" href="/fes.js/assets/js/154.772272fb.js"><link rel="prefetch" href="/fes.js/assets/js/155.92d8f811.js"><link rel="prefetch" href="/fes.js/assets/js/156.220bfbea.js"><link rel="prefetch" href="/fes.js/assets/js/157.8807b8cc.js"><link rel="prefetch" href="/fes.js/assets/js/158.3c945605.js"><link rel="prefetch" href="/fes.js/assets/js/159.3c226b1b.js"><link rel="prefetch" href="/fes.js/assets/js/16.21608533.js"><link rel="prefetch" href="/fes.js/assets/js/160.5e21b174.js"><link rel="prefetch" href="/fes.js/assets/js/161.585be5a8.js"><link rel="prefetch" href="/fes.js/assets/js/162.df94370a.js"><link rel="prefetch" href="/fes.js/assets/js/163.a72fddff.js"><link rel="prefetch" href="/fes.js/assets/js/164.a99e2d54.js"><link rel="prefetch" href="/fes.js/assets/js/165.1b64cb5a.js"><link rel="prefetch" href="/fes.js/assets/js/166.b864ebc8.js"><link rel="prefetch" href="/fes.js/assets/js/167.9f5457b2.js"><link rel="prefetch" href="/fes.js/assets/js/168.31c84839.js"><link rel="prefetch" href="/fes.js/assets/js/169.fd9ef1ad.js"><link rel="prefetch" href="/fes.js/assets/js/17.628e539d.js"><link rel="prefetch" href="/fes.js/assets/js/170.3fc4f24a.js"><link rel="prefetch" href="/fes.js/assets/js/171.2c85e346.js"><link rel="prefetch" href="/fes.js/assets/js/172.811f8353.js"><link rel="prefetch" href="/fes.js/assets/js/173.da8fc25b.js"><link rel="prefetch" href="/fes.js/assets/js/174.a10e3d95.js"><link rel="prefetch" href="/fes.js/assets/js/175.5b6b9f95.js"><link rel="prefetch" href="/fes.js/assets/js/176.9ae11d97.js"><link rel="prefetch" href="/fes.js/assets/js/177.263c7c05.js"><link rel="prefetch" href="/fes.js/assets/js/178.8af820ff.js"><link rel="prefetch" href="/fes.js/assets/js/179.340f2124.js"><link rel="prefetch" href="/fes.js/assets/js/18.f74c470d.js"><link rel="prefetch" href="/fes.js/assets/js/180.1721f39e.js"><link rel="prefetch" href="/fes.js/assets/js/181.362ec251.js"><link rel="prefetch" href="/fes.js/assets/js/182.8be6f10c.js"><link rel="prefetch" href="/fes.js/assets/js/183.e0094e6b.js"><link rel="prefetch" href="/fes.js/assets/js/184.4ded5010.js"><link rel="prefetch" href="/fes.js/assets/js/185.ecfa04cc.js"><link rel="prefetch" href="/fes.js/assets/js/186.d85e6338.js"><link rel="prefetch" href="/fes.js/assets/js/187.45ee0ff9.js"><link rel="prefetch" href="/fes.js/assets/js/188.455e3ba7.js"><link rel="prefetch" href="/fes.js/assets/js/189.99089212.js"><link rel="prefetch" href="/fes.js/assets/js/19.adb191bd.js"><link rel="prefetch" href="/fes.js/assets/js/190.8db6e175.js"><link rel="prefetch" href="/fes.js/assets/js/191.58e5c5e5.js"><link rel="prefetch" href="/fes.js/assets/js/20.3c4a8246.js"><link rel="prefetch" href="/fes.js/assets/js/21.bceab9c1.js"><link rel="prefetch" href="/fes.js/assets/js/22.b9c001d7.js"><link rel="prefetch" href="/fes.js/assets/js/23.c3c204bd.js"><link rel="prefetch" href="/fes.js/assets/js/24.727208d4.js"><link rel="prefetch" href="/fes.js/assets/js/25.90ae11fd.js"><link rel="prefetch" href="/fes.js/assets/js/26.30023c0d.js"><link rel="prefetch" href="/fes.js/assets/js/27.81a4b14d.js"><link rel="prefetch" href="/fes.js/assets/js/28.57f73fbb.js"><link rel="prefetch" href="/fes.js/assets/js/29.fd64021e.js"><link rel="prefetch" href="/fes.js/assets/js/3.5e11613d.js"><link rel="prefetch" href="/fes.js/assets/js/30.76efdf4f.js"><link rel="prefetch" href="/fes.js/assets/js/31.e869900c.js"><link rel="prefetch" href="/fes.js/assets/js/32.b2e26eb6.js"><link rel="prefetch" href="/fes.js/assets/js/33.747fbc03.js"><link rel="prefetch" href="/fes.js/assets/js/34.de9ee359.js"><link rel="prefetch" href="/fes.js/assets/js/35.fec8dc48.js"><link rel="prefetch" href="/fes.js/assets/js/36.3bc574d9.js"><link rel="prefetch" href="/fes.js/assets/js/37.6bc69c79.js"><link rel="prefetch" href="/fes.js/assets/js/38.58d126e9.js"><link rel="prefetch" href="/fes.js/assets/js/39.c5630ef0.js"><link rel="prefetch" href="/fes.js/assets/js/4.8aad18e1.js"><link rel="prefetch" href="/fes.js/assets/js/40.b0d45bd4.js"><link rel="prefetch" href="/fes.js/assets/js/41.5389b6cf.js"><link rel="prefetch" href="/fes.js/assets/js/42.08a733d0.js"><link rel="prefetch" href="/fes.js/assets/js/43.faa7983a.js"><link rel="prefetch" href="/fes.js/assets/js/44.b9392e16.js"><link rel="prefetch" href="/fes.js/assets/js/45.c8f02fd6.js"><link rel="prefetch" href="/fes.js/assets/js/47.be381f75.js"><link rel="prefetch" href="/fes.js/assets/js/48.23b5f25e.js"><link rel="prefetch" href="/fes.js/assets/js/49.c8f41428.js"><link rel="prefetch" href="/fes.js/assets/js/5.ef7cb79c.js"><link rel="prefetch" href="/fes.js/assets/js/50.6b3a205c.js"><link rel="prefetch" href="/fes.js/assets/js/51.952169d3.js"><link rel="prefetch" href="/fes.js/assets/js/52.aa7f7958.js"><link rel="prefetch" href="/fes.js/assets/js/53.0c06e959.js"><link rel="prefetch" href="/fes.js/assets/js/54.7c361990.js"><link rel="prefetch" href="/fes.js/assets/js/55.fc8c73f5.js"><link rel="prefetch" href="/fes.js/assets/js/56.9f4b303c.js"><link rel="prefetch" href="/fes.js/assets/js/57.5750a64c.js"><link rel="prefetch" href="/fes.js/assets/js/58.fafee21e.js"><link rel="prefetch" href="/fes.js/assets/js/59.d3c586c7.js"><link rel="prefetch" href="/fes.js/assets/js/6.1f8c31c8.js"><link rel="prefetch" href="/fes.js/assets/js/60.6b493d4c.js"><link rel="prefetch" href="/fes.js/assets/js/61.6d4baf8a.js"><link rel="prefetch" href="/fes.js/assets/js/62.7a25fd87.js"><link rel="prefetch" href="/fes.js/assets/js/63.5e270828.js"><link rel="prefetch" href="/fes.js/assets/js/64.b17abb2c.js"><link rel="prefetch" href="/fes.js/assets/js/65.ecb4d044.js"><link rel="prefetch" href="/fes.js/assets/js/66.214baade.js"><link rel="prefetch" href="/fes.js/assets/js/67.e98811c2.js"><link rel="prefetch" href="/fes.js/assets/js/68.0b88d471.js"><link rel="prefetch" href="/fes.js/assets/js/69.37a9f9dc.js"><link rel="prefetch" href="/fes.js/assets/js/7.154f06b1.js"><link rel="prefetch" href="/fes.js/assets/js/70.b9276e8b.js"><link rel="prefetch" href="/fes.js/assets/js/71.ec413e60.js"><link rel="prefetch" href="/fes.js/assets/js/72.9b78f34a.js"><link rel="prefetch" href="/fes.js/assets/js/73.5cc116e1.js"><link rel="prefetch" href="/fes.js/assets/js/74.ed3f9134.js"><link rel="prefetch" href="/fes.js/assets/js/75.0ac19e88.js"><link rel="prefetch" href="/fes.js/assets/js/76.8fe79f15.js"><link rel="prefetch" href="/fes.js/assets/js/77.011411bc.js"><link rel="prefetch" href="/fes.js/assets/js/78.932d3724.js"><link rel="prefetch" href="/fes.js/assets/js/79.e5e592c9.js"><link rel="prefetch" href="/fes.js/assets/js/8.6a1e4d2c.js"><link rel="prefetch" href="/fes.js/assets/js/80.87be71a6.js"><link rel="prefetch" href="/fes.js/assets/js/81.55e1c975.js"><link rel="prefetch" href="/fes.js/assets/js/82.ab36fade.js"><link rel="prefetch" href="/fes.js/assets/js/83.14cd3a8f.js"><link rel="prefetch" href="/fes.js/assets/js/84.f413793b.js"><link rel="prefetch" href="/fes.js/assets/js/85.cf1d54c8.js"><link rel="prefetch" href="/fes.js/assets/js/86.9867ea44.js"><link rel="prefetch" href="/fes.js/assets/js/87.7d9d9c02.js"><link rel="prefetch" href="/fes.js/assets/js/88.1fb3748f.js"><link rel="prefetch" href="/fes.js/assets/js/89.c338aa8d.js"><link rel="prefetch" href="/fes.js/assets/js/9.fc7e7822.js"><link rel="prefetch" href="/fes.js/assets/js/90.5aa004be.js"><link rel="prefetch" href="/fes.js/assets/js/91.52c4697f.js"><link rel="prefetch" href="/fes.js/assets/js/92.876ffbbe.js"><link rel="prefetch" href="/fes.js/assets/js/93.0fc5d2e3.js"><link rel="prefetch" href="/fes.js/assets/js/94.159fad62.js"><link rel="prefetch" href="/fes.js/assets/js/95.a7ba2e4a.js"><link rel="prefetch" href="/fes.js/assets/js/96.7e1c7796.js"><link rel="prefetch" href="/fes.js/assets/js/97.171b9202.js"><link rel="prefetch" href="/fes.js/assets/js/98.13a9a6a3.js"><link rel="prefetch" href="/fes.js/assets/js/99.81556285.js">
<link rel="stylesheet" href="/fes.js/assets/css/0.styles.54a65285.css">
</head>
<body>
<div id="app" data-server-rendered="true"><div class="theme-container"><header class="navbar"><div class="sidebar-button"><svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img" viewBox="0 0 448 512" class="icon"><path fill="currentColor" d="M436 124H12c-6.627 0-12-5.373-12-12V80c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12zm0 160H12c-6.627 0-12-5.373-12-12v-32c0-6.627 5.373-12 12-12h424c6.627 0 12 5.373 12 12v32c0 6.627-5.373 12-12 12z"></path></svg></div> <a href="/fes.js/" class="home-link router-link-active"><!----> <span class="site-name">Fes.js</span></a> <div class="links"><div class="search-box"><input aria-label="Search" autocomplete="off" spellcheck="false" value=""> <!----></div> <nav class="nav-links can-hide"><div class="nav-item"><a href="/fes.js/guide/" class="nav-link router-link-active">
指南
</a></div><div class="nav-item"><a href="/fes.js/api/" class="nav-link">
API参考
</a></div><div class="nav-item"><a href="/fes.js/ui/" class="nav-link">
组件
</a></div><div class="nav-item"><a href="/fes.js/cli/" class="nav-link">
CLI
</a></div> <a href="https://github.com/WeBankFinTech/fes.js" target="_blank" rel="noopener noreferrer" class="repo-link">
GitHub
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav></div></header> <div class="sidebar-mask"></div> <aside class="sidebar"><nav class="nav-links"><div class="nav-item"><a href="/fes.js/guide/" class="nav-link router-link-active">
指南
</a></div><div class="nav-item"><a href="/fes.js/api/" class="nav-link">
API参考
</a></div><div class="nav-item"><a href="/fes.js/ui/" class="nav-link">
组件
</a></div><div class="nav-item"><a href="/fes.js/cli/" class="nav-link">
CLI
</a></div> <a href="https://github.com/WeBankFinTech/fes.js" target="_blank" rel="noopener noreferrer" class="repo-link">
GitHub
<svg xmlns="http://www.w3.org/2000/svg" aria-hidden="true" x="0px" y="0px" viewBox="0 0 100 100" width="15" height="15" class="icon outbound"><path fill="currentColor" d="M18.8,85.1h56l0,0c2.2,0,4-1.8,4-4v-32h-8v28h-48v-48h28v-8h-32l0,0c-2.2,0-4,1.8-4,4v56C14.8,83.3,16.6,85.1,18.8,85.1z"></path> <polygon fill="currentColor" points="45.7,48.7 51.3,54.3 77.2,28.5 77.2,37.2 85.2,37.2 85.2,14.9 62.8,14.9 62.8,22.9 71.5,22.9"></polygon></svg></a></nav> <ul class="sidebar-links"><li><section class="sidebar-group depth-0"><p class="sidebar-heading open"><span>基础</span> <!----></p> <ul class="sidebar-links sidebar-group-items"><li><a href="/fes.js/guide/" aria-current="page" class="sidebar-link">介绍</a></li><li><a href="/fes.js/guide/install.html" class="sidebar-link">安装</a></li><li><a href="/fes.js/guide/play.html" class="sidebar-link">快速上手</a></li><li><a href="/fes.js/guide/directory-structure.html" class="sidebar-link">目录结构</a></li><li><a href="/fes.js/guide/layout.html" class="sidebar-link">布局</a></li><li><a href="/fes.js/guide/route.html" class="sidebar-link">路由</a></li><li><a href="/fes.js/guide/permisson.html" aria-current="page" class="active sidebar-link">权限管理</a><ul class="sidebar-sub-headers"><li class="sidebar-sub-header"><a href="/fes.js/guide/permisson.html#权限分类" class="sidebar-link">权限分类</a></li><li class="sidebar-sub-header"><a href="/fes.js/guide/permisson.html#角色" class="sidebar-link">角色</a></li><li class="sidebar-sub-header"><a href="/fes.js/guide/permisson.html#动态权限" class="sidebar-link">动态权限</a></li></ul></li><li><a href="/fes.js/guide/i18n.html" class="sidebar-link">国际化</a></li><li><a href="/fes.js/guide/option.html" class="sidebar-link">Vue增强</a></li><li><a href="/fes.js/guide/unit.html" class="sidebar-link">单元测试</a></li></ul></section></li><li><section class="sidebar-group depth-0"><p class="sidebar-heading"><span>插件</span> <!----></p> <!----></section></li><li><a href="/fes.js/guide/releaseNote.html" class="sidebar-link">Release 记录</a></li><li><a href="/fes.js/guide/contact.html" class="sidebar-link">联系我们</a></li></ul> </aside> <main class="page"> <div class="theme-default-content content__default"><h1 id="权限管理"><a href="#权限管理" class="header-anchor">#</a> 权限管理</h1> <p>权限管理也就是页面是否可见、按钮是否可见。我们把页面和按钮叫做资源在内部定义了一个allowPage数组来控制用户可访问的资源。我们可以用角色未登录状态也可以当作一个角色定义一组资源。当用户访问应用时用setRole设置用户的角色这样就能控制用户显示的菜单和按钮。当然有时候角色不能预先定义我们也提供setAllowPage来控制当前用户能访问的资源。</p> <h2 id="权限分类"><a href="#权限分类" class="header-anchor">#</a> 权限分类</h2> <h3 id="菜单权限"><a href="#菜单权限" class="header-anchor">#</a> 菜单权限</h3> <p><code>fes.config.js</code>中配置菜单<code>menu</code>,会根据配置生成左侧菜单列表。当用户的可访问资源列表<code>allowPage</code>更新时,如果页面路径在<code>allowPage</code>中,则菜单可见,否则隐藏菜单项。</p> <h3 id="按钮权限"><a href="#按钮权限" class="header-anchor">#</a> 按钮权限</h3> <p>菜单权限使用菜单的路径当做资源id而按钮则可以自定义资源id。例如我们定义一个按钮的资源id为'/hr/shelf-action'</p> <div class="language-html extra-class"><pre class="language-html"><code><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;</span>Wb-button</span> <span class="token attr-name"><span class="token namespace">v-permission:</span></span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">&quot;</span><span class="token punctuation">'</span>/hr/shelf-action<span class="token punctuation">'</span><span class="token punctuation">&quot;</span></span><span class="token punctuation">&gt;</span></span><span class="token tag"><span class="token tag"><span class="token punctuation">&lt;/</span>Wb-button</span><span class="token punctuation">&gt;</span></span>
</code></pre></div><p>在如果设置角色或者直接设置可访问资源列表后, 资源列表包含'/hr/shelf-action',则此按钮可见。</p> <div class="language-javascript extra-class"><pre class="language-javascript"><code> <span class="token keyword">this</span><span class="token punctuation">.</span>FesApp<span class="token punctuation">.</span><span class="token function">setAllowPage</span><span class="token punctuation">(</span><span class="token punctuation">[</span><span class="token string">'/hr/shelf-action'</span><span class="token punctuation">,</span> <span class="token operator">...</span><span class="token punctuation">]</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="角色"><a href="#角色" class="header-anchor">#</a> 角色</h2> <p>当应用的角色固定时,在前端配置好资源列表后,根据当前登录用户的角色赋予其对应权限。</p> <h3 id="定义角色"><a href="#定义角色" class="header-anchor">#</a> 定义角色</h3> <p><code>fes.config.js</code> 中配置系统角色与资源的映射关系:</p> <div class="language-javascript extra-class"><pre class="language-javascript"><code><span class="token keyword">export</span> <span class="token keyword">default</span> <span class="token punctuation">{</span>
<span class="token string">'unLogin'</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'/home'</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token string">'service'</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'/list'</span><span class="token punctuation">,</span> <span class="token string">'/home'</span><span class="token punctuation">]</span><span class="token punctuation">,</span>
<span class="token string">'admin'</span><span class="token operator">:</span> <span class="token punctuation">[</span><span class="token string">'/api/fesMap'</span><span class="token punctuation">,</span> <span class="token string">'*'</span><span class="token punctuation">]</span>
<span class="token punctuation">}</span>
</code></pre></div><h3 id="设置角色"><a href="#设置角色" class="header-anchor">#</a> 设置角色</h3> <p>在app.js中设置</p> <div class="language-js extra-class"><pre class="language-js"><code><span class="token keyword">this</span><span class="token punctuation">.</span><span class="token function">setRole</span><span class="token punctuation">(</span><span class="token string">'master'</span><span class="token punctuation">)</span>
</code></pre></div><p>在登录页面组件中设置:</p> <div class="language-javascript extra-class"><pre class="language-javascript"><code><span class="token comment">//登录时,设置为其他角色</span>
<span class="token keyword">this</span><span class="token punctuation">.</span>FesApi<span class="token punctuation">.</span><span class="token function">fetch</span><span class="token punctuation">(</span><span class="token string">&quot;/getRoleName&quot;</span><span class="token punctuation">)</span><span class="token punctuation">.</span><span class="token function">then</span><span class="token punctuation">(</span><span class="token punctuation">(</span><span class="token parameter">res</span><span class="token punctuation">)</span><span class="token operator">=&gt;</span> <span class="token punctuation">{</span>
<span class="token comment">// 角色预先定义</span>
<span class="token keyword">this</span><span class="token punctuation">.</span>FesApp<span class="token punctuation">.</span><span class="token function">setRole</span><span class="token punctuation">(</span>res<span class="token punctuation">)</span>
<span class="token punctuation">}</span><span class="token punctuation">)</span>
</code></pre></div><h2 id="动态权限"><a href="#动态权限" class="header-anchor">#</a> 动态权限</h2> <p>某些应用需要有创建角色的功能,需要可配置角色的权限范围,故在前端不能写死角色对应的资源列表。在创建角色时,将角色名和角色拥有的权限范围也就是可访问资源列表通过接口保存在后台数据库中,当用户登录时响应返回用户的可访问资源列表,通过<code>setAllowPage</code>方法设置,就可以达到跟<code>setRole</code>一样的效果。<br> <strong>setAllowPage 与 setRole 互斥,只有一个会生效</strong></p> <div class="language-js extra-class"><pre class="language-js"><code><span class="token comment">// 角色由后台控制只需要它返回url</span>
<span class="token keyword">this</span><span class="token punctuation">.</span>FesApp<span class="token punctuation">.</span><span class="token function">setAllowPage</span><span class="token punctuation">(</span>res<span class="token punctuation">.</span>urls<span class="token punctuation">)</span>
</code></pre></div></div> <footer class="page-edit"><!----> <div class="last-updated"><span class="prefix">上次编辑时间:</span> <span class="time">11/27/2020, 3:38:53 AM</span></div></footer> <div class="page-nav"><p class="inner"><span class="prev">
<a href="/fes.js/guide/route.html" class="prev">
路由
</a></span> <span class="next"><a href="/fes.js/guide/i18n.html">
国际化
</a>
</span></p></div> </main></div><div class="global-ui"><!----></div></div>
<script src="/fes.js/assets/js/app.d4a34833.js" defer></script><script src="/fes.js/assets/js/2.1380c702.js" defer></script><script src="/fes.js/assets/js/46.70c14108.js" defer></script><script src="/fes.js/assets/js/10.2329d47f.js" defer></script>
</body>
</html>