在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/HTML5  HTML/ 前后端分離項(xiàng)目,你們是怎么控制權(quán)限的?

前后端分離項(xiàng)目,你們是怎么控制權(quán)限的?

已經(jīng)做前后端分離 快一年了
技術(shù)棧趨向成熟

  • vue
  • vue router
  • vuex
  • node
  • express

做出來(lái)的是單頁(yè)面應(yīng)用,但是在權(quán)限上一直都有問(wèn)題。
現(xiàn)在我做權(quán)限 是 后臺(tái)有一套,前端又有重復(fù)的一套,麻煩就在這里,

  • 只有我對(duì)后臺(tái)有請(qǐng)求的時(shí)候,我才知道用戶到底有沒(méi)有這個(gè)權(quán)限「因?yàn)榍芭_(tái)的權(quán)限,就存在 localSorage 里面,用戶可以更改」,如果請(qǐng)求發(fā)現(xiàn)沒(méi)權(quán)限,還是前端 router 跳到?jīng)]權(quán)限或者登錄頁(yè),但是如果這個(gè)頁(yè)面沒(méi)有請(qǐng)求呢。
  • 因?yàn)槭且粋€(gè)管理系統(tǒng),權(quán)限特別細(xì),比如某些用戶只有這幾個(gè)目錄可以看,其他用戶只有那幾個(gè)目錄可以看,但我用的是前端路由,問(wèn)題又來(lái)了。

    • 前端路由一般都是配置好的,我怎么讓用戶一進(jìn)來(lái)就跳到他自己有權(quán)限的頁(yè)面的第一頁(yè)。
    • 如果用戶直接輸入 一個(gè)沒(méi)有權(quán)限進(jìn)入的地址 我該怎么攔截「須知我的攔截其實(shí)沒(méi)有意義,因?yàn)轫?yè)面都在他那里,他只需要改掉我的攔截代碼就行」

這里 我現(xiàn)在的解決方案是

  • 還是后臺(tái)傳給我 詳細(xì)的權(quán)限,用于我鋪設(shè)頁(yè)面,如果這個(gè)沒(méi)有權(quán)限,導(dǎo)航上也是沒(méi)有顯示的,但是這樣還是可以被更改。
  • 第二個(gè) 用戶登錄 就會(huì)跳他能看到頁(yè)面的第一個(gè)。

    • 首先 路由上 是全部都注冊(cè)好的
    • 請(qǐng)求之后拿到權(quán)限,然后根據(jù)權(quán)限 生成導(dǎo)航數(shù)組
    • 然后自動(dòng)頁(yè)面跳到導(dǎo)航數(shù)組的 第一個(gè)
    • 切換頁(yè)面的時(shí)候,都要去根據(jù)導(dǎo)航數(shù)組判斷他是否有這個(gè)頁(yè)面權(quán)限。

但是我覺(jué)得自己的辦法太笨拙,而且還是會(huì)被篡改,所以求各位解答疑惑,謝謝了。

回答
編輯回答
離殤

vue路由有meta字段,可以用來(lái)存儲(chǔ)可訪問(wèn)此路由的角色,但是這樣的話,你的菜單需要根據(jù)路由動(dòng)態(tài)生成而不是寫(xiě)死在頁(yè)面上。

2017年10月8日 20:48
編輯回答
帥到炸

從后端拿到當(dāng)前用戶能訪問(wèn)的頁(yè)面菜單配置,或跟權(quán)限相關(guān)的操作,可先進(jìn)行查詢等,
也有做一些示例:https://github.com/meibin08/ ,可以參考一下,

2017年4月26日 21:12
編輯回答
晚風(fēng)眠

前后端分離,不是完全分離?你沒(méi)有自己的node服務(wù)器,再去轉(zhuǎn)接后臺(tái)請(qǐng)求,session在哪里做的,正常權(quán)限數(shù)據(jù)應(yīng)該放在session里的。

2017年9月16日 22:12
編輯回答
有你在

前端不建議擁有權(quán)限控制,因?yàn)槭遣豢煽康?。?/p>

2017年12月1日 18:37
編輯回答
逗婦乳

可以看看這個(gè),前后端分離權(quán)限問(wèn)題解決樣板https://github.com/lenve/vhr

2017年12月1日 02:45
編輯回答
枕邊人

同意@小翼做法是對(duì)的,你說(shuō)的手動(dòng)修改了有什么關(guān)系,就算用戶能通過(guò)一些方式進(jìn)入到本來(lái)進(jìn)入不了的頁(yè)面,當(dāng)在那個(gè)頁(yè)面想要獲取到一些數(shù)據(jù)或者一些操作還是要通過(guò)這個(gè)token值,而這個(gè)token值用戶是破解不了的,他只是單純的進(jìn)入了一個(gè)空頁(yè)面而已頁(yè)面

2018年3月17日 16:35
編輯回答
假灑脫

完整的前端權(quán)限控制可以參考這個(gè)項(xiàng)目:https://github.com/tower1229/...

2017年10月23日 16:27
編輯回答
巷尾

我做的項(xiàng)目也是有這個(gè)問(wèn)題, 因?yàn)槲疫@里的權(quán)限控制非常細(xì), 細(xì)到每一步操作都要判斷是否可以進(jìn)行, 于是我和后端這樣約定.

查操作, 前端不進(jìn)行鑒權(quán), 后端根據(jù)用戶的權(quán)限, 如果有數(shù)據(jù)則返回?cái)?shù)據(jù), 沒(méi)有數(shù)據(jù)就返回空
增刪改操作, 前端統(tǒng)一在組件內(nèi)自動(dòng) fetch 相關(guān)資源的 action, 然后根據(jù)后端返回是否有權(quán)限, 來(lái)決定組件的行為

2018年6月23日 04:08
編輯回答
柒喵

我覺(jué)得樓主的問(wèn)題應(yīng)該是不存在的。
后端做了權(quán)限控制,無(wú)權(quán)看到的內(nèi)容就不會(huì)返回了,即使你請(qǐng)求了這個(gè)接口。

前端也控制了權(quán)限,無(wú)權(quán)訪問(wèn)的頁(yè)面,導(dǎo)航中就不會(huì)顯示了,如果用戶自己在前端修改了前端的數(shù)據(jù),或者跳過(guò)你給的導(dǎo)航,直接通過(guò)url訪問(wèn)對(duì)應(yīng)的頁(yè)面,也應(yīng)該不會(huì)有什么大問(wèn)題,因?yàn)榧词顾茉谇岸嗽L問(wèn)到那個(gè)頁(yè)面,但每個(gè)頁(yè)面都有對(duì)應(yīng)的內(nèi)容(數(shù)據(jù)),顯示內(nèi)容的時(shí)候是需要請(qǐng)求后端的,后端沒(méi)有權(quán)限,打開(kāi)頁(yè)面也只能是空白。

你只要后端做好了權(quán)限控制,前端無(wú)論怎么改也應(yīng)該是不能獲取到自己沒(méi)有權(quán)限的內(nèi)容的。

從數(shù)據(jù)安全的角度來(lái)說(shuō),前端可以完全不使用權(quán)限控制;如果你那里做不到這點(diǎn)的話,那么,你后端的權(quán)限控制肯定是有問(wèn)題的。

前端的權(quán)限控制只是為了給用戶更好的體檢;并不是真的拿來(lái)控制權(quán)限的。

2018年9月14日 17:06
編輯回答
好難瘦

控制全部交給后臺(tái)處理。
第一次登錄的時(shí)候,使用用戶信息生成token返回給客戶端。
token的安全性由后臺(tái)處理,前端拿到的數(shù)據(jù)都認(rèn)為是正確的,不對(duì)權(quán)限做控制。
前端每次請(qǐng)求后臺(tái)接口,都將token帶入。由后臺(tái)驗(yàn)證token的正確性,并且返回相應(yīng)的結(jié)果。
用標(biāo)準(zhǔn)的restful api就可以了。

2018年2月1日 12:13