鍍金池/ 問答/HTML/ 前端如何控制用戶權(quán)限呢

前端如何控制用戶權(quán)限呢

用的react,我的想法是在后臺用戶庫里面加上admin:true,然后前臺先驗證登陸用戶是否為admin,如果是就條件渲染出admin要使用的東西,感覺缺陷很大阿,求各位大大給小弟說一下,權(quán)限管理是怎樣設(shè)計的阿

看了大大們的答案我有想法了,在react設(shè)一個全局變量顯示權(quán)限操作,給后臺傳數(shù)據(jù)時,后臺先驗證當(dāng)前操作用戶是否有amdin權(quán)限~

回答
編輯回答
真難過

先說一下對權(quán)限的看法:

前端要做的是,不讓正常操作的用戶發(fā)出不具有權(quán)限的api. 后端要做的是, 在接到權(quán)限用戶不匹配的請求不做數(shù)據(jù)操作并返回某些格式的數(shù)據(jù)(來使前端判斷并提示).

那么前端關(guān)于權(quán)限的事情只有2件:

  • 第一類別, 隱藏不具權(quán)限的操作按鈕 或 點擊不具權(quán)限的按鈕后不發(fā)請求直接提示 再或者根據(jù)當(dāng)前用戶擁有的權(quán)限來加載數(shù)據(jù).
  • 第二類別, 配合后端對權(quán)限的驗證來進(jìn)行登錄過程或每次請求帶上某些驗證.

說一種做法:

因為感覺你碰到的問題是第一類別, 在用戶登錄以后儲存一份用戶的權(quán)限數(shù)據(jù)(這份數(shù)據(jù)可以自己判斷也可以向后端請求).類似: {admin: true}. 或者{lookup: true, operate: false}. 或者是具有哪些權(quán)限: ['lookup', 'operate', 'create', 'delete', 'modify']. 然后在涉及到權(quán)限的界面根據(jù)這份數(shù)據(jù)進(jìn)行判斷, 或是發(fā)涉及權(quán)限的請求前對這份數(shù)據(jù)進(jìn)行判斷.

2018年5月18日 07:42
編輯回答
淺時光

1.如果是admin的話,前臺直接判斷控制,允許其擁有所有路由和操作權(quán)限,不需要通過后臺
2.如果不是admin,需要前臺和后臺配合,前臺擁有一個權(quán)限分配的頁面(這個頁面可以是admin操作的),后臺收集值之后,前臺其他用戶登錄的時候,可以獲取其相關(guān)的權(quán)限

2017年9月4日 12:08
編輯回答
替身

token 了解一下

2018年7月10日 13:21
編輯回答
尤禮

權(quán)限控制交給后端。
前端僅僅做下開關(guān)顯示,再穩(wěn)妥點,每次進(jìn)入頁面都發(fā)一次請求,從后端拿權(quán)限開關(guān)。

2017年6月21日 20:38
編輯回答
醉淸風(fēng)

權(quán)限無論什么時候,都應(yīng)該交給后臺來控制,前端最多就是按需展示,用戶到底有沒有權(quán)限,應(yīng)該是后臺進(jìn)行判斷的。永遠(yuǎn)不要相信前端傳的數(shù)據(jù),前端不是一個安全的環(huán)境。

2017年8月18日 21:32
編輯回答
枕頭人

用token吧,登錄的時候把當(dāng)前用戶的權(quán)限寫在session里面,然后需要的地方直接判斷做不同操作就行了

2017年12月23日 05:21