思路:有些界面和操作按鈕有着對應唯一的權限碼,當用戶登錄之後會獲取到用戶向前所擁有的權限碼。然後跟整個系統的權限碼進行比對,如果存在對應的權限碼則擁有該權限。
步驟:
1,在permission.js中存放整個系統的權限碼
2.登錄成功後獲取到當前用戶擁有的權限列表,並使用localStorage本地存儲起來
window.localStorage.setItem('auth', JSON.stringify(auth));
3.在auth.js中編寫當前權限碼與系統權限碼是否匹配
const isAuth = authId => {
if (authId === undefined || authId === null) {
return true;
}
let ids = [];
// 可能是個數組
if (authId.length) {
ids = ids.concat(authId);
} else {
ids.push(authId);
}
// 獲取當前用戶所擁有的權限列表
let authIds = JSON.parse(window.localStorage.getItem("auth")) || [];
// 循環判斷是否匹配
for (const userAuthId of ids) {
for (const id of authIds) {
if (userAuthId === id) {
return true
}
}
}
return false;
};
export { isAuth };
使用:
如在新增按鈕設置權限:
{isAuth(Permission.postManage.addPost)) === true ? <Button onClick={this.handleAddPost}>新增</Button> : ''}
isAuth返回值爲true就顯示新增按鈕 false就不顯示
-------------------------------------------------------------------------------------------------------------------------------------------------------------------如遇到問題:+WX:WAZJ-0508,及時聯繫---------------------------------------------------------------------------------------------------------------------------------------------------