日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

完美实现SpringBoot+Angular普通登录

發布時間:2025/3/20 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 完美实现SpringBoot+Angular普通登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

??點擊上方?好好學java?,選擇?星標?公眾號

重磅資訊、干貨,第一時間送達 今日推薦:2020,搞個 Mac 玩玩!個人原創+1博客:點擊前往,查看更多 作者:LYX6666 鏈接:https://segmentfault.com/a/1190000021873471

本文基于《SpringBoot+Angular入門實例教程》第5.1節的內容理解并簡化而來。本文的目的淺析前后臺分離的普通登錄數據流。

一、基本問題

簡圖如下:

數據流

SpringBoot+Angular的數據流,請參考我的上一篇SpringBoot+Angular前后端分離的數據流淺析。

簡而言之:C層負責數據轉發, M層(Service服務層)負責具體的數據處理和發出請求, 前臺的V層是頁面模板,負責組件渲染 后臺的倉庫層負責和數據庫直接對話 前臺的實體、后臺的實體和數據庫的字段一一對應。

前后臺的分工?

在這個登錄功能中,后臺唯一的作用就是只做數據驗證。當用戶登錄時,前臺向后臺發起用戶名、密碼驗證的請求,如果后臺驗證成功,就返回真,否則返回假。當前臺接收到返回值后,再判斷用戶是否登錄成功。

登錄狀態保存在哪?

一開始,可以保存在app組件中,然后V層使用ngIf直接獲取C層變量就可以獲取登錄狀態,但是依賴登錄狀態的

登錄狀態儲存在前臺的服務層的一個變量中,所有的組件在渲染前都去找這個登錄服務要數據,如果用戶處于登錄狀態,就正常跳轉,否則跳轉到登錄頁。

登錄和注銷動作

初始化時,登錄狀態為假。登錄時,如果后臺返回值是真,就把登錄狀態變量改為真,否則不變。注銷是,只需把登錄狀態改為假,即可。

二、詳解登錄注銷過程

登錄

圖片.png
  • 用戶提交Form表單,觸發C層onSubmit()方法

  • C層調用服務的Login()方法

  • teacher服務向后臺發起Http請求,傳入用戶名和密碼

  • 后臺C層調用M層Login方法,傳入用戶名密碼

  • 后臺M層調用倉庫findByUsername方法,傳入Username

  • 后臺倉庫使用SQL從數據庫中去除對象,并返回給M層

  • 后臺M層調用ValidatePassword把倉庫返回的用戶密碼和C層傳入的密碼比較,如果一致就返回True

  • 后臺C層把布爾值返回給前臺

  • 前臺teacher服務層把接受的布爾值返回給C層

  • 前臺C層判斷返回的數據是否為真,若為真,就調用M層setLogin方法,把登錄狀態修改為1

  • 前臺C層返回,跳轉對應的界面

  • 跳轉

    圖片.png
  • 瀏覽器輸入Url觸發方法,生成組件

  • C層向Teacher服務訂閱登錄組件

  • C層獲取登錄狀態isLogin$并賦值給本類的islogin

  • V層渲染頁面,根據C的登錄狀態來決定顯示那些內容,如果未登錄就顯示登錄頁

  • 把頁面返回給瀏覽器

  • 注銷

    圖片.png
  • 瀏覽器觸發導航欄C層Logout方法

  • 導航欄調用M層setIsLogin(flase),把登錄狀態改成0

  • M層返回

  • 把登錄頁返回給瀏覽器

  • 三、合并圖片

    圖片.png

    四、存在的問題

    當前的所有驗證都只是在前臺,后臺沒有任何驗證,用戶無需認證便可以通過瀏覽器或是其它的REST工具對后臺進行肆意操作。一個形同虛設的登錄功能只是擋住了一些正常的用戶,但對一些非法用戶的入侵卻毫無防范。甚至于后臺根本就沒有能力判斷是誰正在進行數據請求,權限控制當然也就無從談起。本文的圖片只是解釋了教程中的邏輯,使教程更容易理解,所以更好的方式還是使用安全性更高的token令牌機制。

    教程源碼:https://github.com/mengyunzhi/spring-boot-and-angular-guild/releases/tag/step5.1.6

    總結

    以上是生活随笔為你收集整理的完美实现SpringBoot+Angular普通登录的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。