Spring Boot + Vue 前后端分離開發,權限管理的一點思路


在傳統的前后端不分的開發中,權限管理主要通過過濾器或者攔截器來進行(權限管理框架本身也是通過過濾器來實現功能),如果用戶不具備某一個角色或者某一個權限,則無法訪問某一個頁面。

但是在前后端分離中,頁面的跳轉統統交給前端去做,后端只提供數據,這種時候,權限管理不能再按照之前的思路來。

首先要明確一點,前端是展示給用戶看的,所有的菜單顯示或者隱藏目的不是為了實現權限管理,而是為了給用戶一個良好的體驗,不能依靠前端隱藏控件來實現權限管理,即數據安全不能依靠前端。

這點就像普通的表單提交一樣,前端做數據校驗是為了提高效率,提高用戶體驗,后端才是真正的確保數據完整性。

所以,真正的數據安全管理是在后端實現的,后端在接口設計的過程中,就要確保每一個接口都是在滿足某種權限的基礎上才能訪問,也就是說,不怕將后端數據接口地址暴露出來,即使暴露出來,只要你沒有相應的角色,也是訪問不了的。

前端為了良好的用戶體驗,需要將用戶不能訪問的接口或者菜單隱藏起來。

有人說,如果用戶直接在地址攔輸入某一個頁面的路徑,怎么辦?此時,如果沒有做任何額外的處理的話,用戶確實可以通過直接輸入某一個路徑進入到系統中的某一個頁面中,但是,不用擔心數據泄露問題,因為沒有相關的角色,就無法訪問相關的接口。

但是,如果用戶非這樣操作,進入到一個空白的頁面,用戶體驗不好,此時,我們可以使用 Vue 中的前置路由導航守衛,來監聽頁面跳轉,如果用戶想要去一個未獲授權的頁面,則直接在前置路由導航守衛中將之攔截下來,重定向到登錄頁,或者直接就停留在當前頁,不讓用戶跳轉,也可以順手再給用戶一點點未獲授權的提示信息。

總而言之一句話,前端的所有操作,都是為了提高用戶體驗,不是為了數據安全,真正的權限校驗要在后端來做,后端如果是 SSM 架構,建議使用 Shiro ,如果是 Spring Boot + 微服務,建議使用 Spring Security 。

關注公眾號【江南一點雨】,專注於 Spring Boot+微服務,定期視頻教程分享,關注后回復 Java ,領取松哥為你精心准備的 Java 干貨!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM