溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

發(fā)布時(shí)間:2021-09-28 09:39:27 來源:億速云 閱讀:224 作者:柒染 欄目:大數(shù)據(jù)

本篇文章為大家展示了SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

前后端分離

前面討論了springboot下security很多常用的功能,其它的功能建議參考官方文檔學(xué)習(xí)。網(wǎng)頁版登錄的形式現(xiàn)在已經(jīng)不是最流行的了,最流行的是前后端分離的登錄方式,前端單獨(dú)成為一個項(xiàng)目,與后臺的交互,包括登錄認(rèn)證和授權(quán)都是由異步接口來實(shí)現(xiàn)。在前后端不分離的應(yīng)用模式中,前端頁面看到的效果都是由后端控制,由后端渲染頁面或重定向,也就是后端需要控制前端的展示,前端與后端的耦合度很高。這種應(yīng)用模式比較適合純網(wǎng)頁應(yīng)用,

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

但是當(dāng)后端對接App時(shí),App可能并不需要后端返回一個HTML網(wǎng)頁,而僅僅是數(shù)據(jù)本身,所以后端原本返回網(wǎng)頁的接口不再適用于前端App應(yīng)用,為了對接App后端還需再開發(fā)一套接口。

在前后端分離的應(yīng)用模式中,后端僅返回前端所需的數(shù)據(jù),不再渲染HTML頁面,不再控制前端的效果。至于前端用戶看到什么效果,從后端請求的數(shù)據(jù)如何加載到前端中,都由前端自己決定,網(wǎng)頁有網(wǎng)頁的處理方式,App有App的處理方式,但無論哪種前端,所需的數(shù)據(jù)基本相同,后端僅需開發(fā)一套邏輯對外提供數(shù)據(jù)即可。在前后端分離的應(yīng)用模式中 ,前端與后端的耦合度相對較低。

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

在前后端分離的應(yīng)用模式中,我們通常將后端開發(fā)的每個視圖都稱為一個接口,或者API,前端通過訪問接口來對數(shù)據(jù)進(jìn)行增刪改查。

前后端分離出現(xiàn)的跨域問題

前后端分離后,出現(xiàn)的經(jīng)典問題就是跨域問題。跨域,指的是瀏覽器不能執(zhí)行其他網(wǎng)站的腳本。它是由瀏覽器的同源(域名,協(xié)議,端口)策略造成的,是瀏覽器對JavaScript施加的安全限制。具體的跨域理論跨域自行查詢學(xué)習(xí)。在security中,解決跨域問題是非常簡單的。只需要增加幾行配置即可。

簡單示例

來寫一個簡單的例子來實(shí)現(xiàn)前后端分離的異步登錄。首先引入依賴:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

修改springboot默認(rèn)配置文件,添加默認(rèn)用戶:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

啟動類不用修改,添加一個接口:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

下面來配置security配置類,首先配置登錄,異步登錄不再需要后臺配置登錄頁面地址,只需要配置登錄參數(shù)和api地址即可:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

然后加上授權(quán)配置和登錄成功的處理:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

最后加上csrf配置:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

最簡單的配置已經(jīng)完成了,最后來看一下登錄成功的處理:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

返回了一個json形式的登錄成功消息。

簡單測試

來進(jìn)行一個簡單的測試,啟動項(xiàng)目,使用postman直接訪問hello接口:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

訪問不成功,返回了登錄的html頁面,關(guān)于沒有權(quán)限的處理,后面會做的更加友好。下面用接口進(jìn)行登錄:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

可以看到正常登錄成功,postman中也多了一個cookie信息:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

這和瀏覽器的cookie是一樣的,刪掉以后就成了未登錄狀態(tài)。現(xiàn)在訪問hello接口,可以看到正常的效果:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

添加跨域

添加跨域配置非常簡單,首先在security配置中調(diào)用cors方法:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

然后我們打開springboot的官方文檔,查看跨域配置:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

可以看到,在springboot中,全局的跨域配置非常簡單,我們來模仿寫一個bean:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

這樣跨域就配置好了。

其它處理器

來看一下登錄失?。ū热缳~號錯誤)時(shí)的處理器:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

配置登錄失敗處理器:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

測試:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

來看一下登錄超時(shí)或者未登錄的異常處理器:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

配置登錄超時(shí)或者未登錄處理器:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

測試,在未登錄的情況下,直接訪問hello接口:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

現(xiàn)在提示友好了很多。最后看一下權(quán)限不足處理器:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

配置權(quán)限不足處理器:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

然后開啟方法級別的權(quán)限注解,在hello方法上面配置HELLO權(quán)限:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

在配置文件中,給默認(rèn)用戶admin配置一個其他角色:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

然后重啟項(xiàng)目,首先在postman中,進(jìn)行登錄,然后再訪問hello接口:

SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法

此時(shí)就會根據(jù)處理器的結(jié)果提示權(quán)限不足。

說明

上面是一個簡單的前后端分離的登錄的例子。這里只應(yīng)用了幾個簡單的功能,不過前面討論過的從數(shù)據(jù)庫中查詢用戶,動態(tài)權(quán)限,共享session,記住我等等的功能,也都可以加入到前后端分離的登錄功能中,這些內(nèi)容的使用和前面網(wǎng)頁版的登錄沒有什么區(qū)別。使用這些完全可以滿足前后端分離的登錄和授權(quán)功能。

代碼地址 : https://gitee.com/blueses/spring-boot-security 12

上述內(nèi)容就是SpringBootSecurity中前后端分離的介紹以及簡單登錄的操作方法,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲備,歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI