B2C電商項目 購物車訂單,下單業務 微服務之間認證 工作總結

購物車

採用用戶必須先登錄才能使用購物車功能

1.1、購物車業務分析

(1)需求分析
用戶在商品詳細頁點擊加入購物車,提交商品SKU編號和購買數量,添加到購物車。購物車展示頁面如
下:
在這裏插入圖片描述
(2)購物車實現思路
在這裏插入圖片描述
我們實現的是用戶登錄後的購物車,用戶將商品加入購物車的時候,直接將要加入購物車的詳情存入到
Redis即可。每次查看購物車的時候直接從Redis中獲取。

1.2、 添加購物車

在這裏插入圖片描述

1.3、 購物車列表

1.3.1 思路分析

在這裏插入圖片描述
接着我們實現一次購物車列表操作。因爲存的時候是根據用戶名往 Redis中存儲用戶的購物車數據的,
所以我們這裏可以將用戶的名字作爲key去Redis中查詢對應的數據

1.4、 購物車渲染

在這裏插入圖片描述
如上圖所示 ,用戶每次將商品加入購物車,或者點擊購物車列表的時候,先經過訂單購物車後端渲染服
務,再通過feign調用購物車訂單微服務來實現購物車的操作,例如:加入購物車、購物車列表。

1.5、 商品數量變更

用戶可以點擊+號或者-號,或者手動輸入一個數字,然後更新購物車列表,我們可以給-+號一個點擊事
件,給數字框一個失去焦點事件,然後調用後臺,實現購物車的更新。

刪除商品購物車

我們發現個問題,就是用戶將商品加入購物車,無論數量是正負,都會執行添加購物車,如果數量如果
<=0,應該移除該商品的。

三、 微服務間認證

在這裏插入圖片描述
如上圖:因爲微服務之間並沒有傳遞頭文件,所以我們可以定義一個攔截器,每次微服務調用之前都先
檢查下頭文件,將請求的頭文件中的令牌數據再放入到header中,再調用其他微服務即可。
測試訪問購物車,產生如下效果:
在這裏插入圖片描述

3.2、 動態獲取當前登陸人

3.2.1 數據分析

用戶登錄後,數據會封裝到 SecurityContextHolder.getContext().getAuthentication() 裏面,
我們可以將數據從這裏面取出,然後轉換成 OAuth2AuthenticationDetails ,在這裏面可以獲取到令
牌信息、令牌類型等代碼如下:
在這裏插入圖片描述
這裏的 tokenValue是加密之後的令牌數據,remoteAddress是用戶的IP信息,tokenType是令牌類型。
我們可以獲取令牌加密數據後,使用公鑰對它進行解密,如果能解密說明數據無誤,如果不能解密用戶
也沒法執行到這一步。解密後可以從明文中獲取用戶信息

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章