redis單點登錄,jwt單點登錄,三方登錄,RBAC


Redis單點登錄
因為該項目使用的是分布式架構,采用了nginx負載均衡,所以會產生一個問題,每一個服務器都需要開辟一個空間來存儲用戶的信息。使用redis來代替用戶信息存儲空間。
用戶在A機器上登錄,將信息存儲到redis中返回token,並存入時設置key的有效時間。
所有的服務器公用一個redis,每次操作是都是到redis中判斷用戶信息狀態。
單點登錄:
Session默認是存儲到當地服務器的內存中
解決方案:
不管在那一台web服務器登錄,都會把token值存放到一個集中管理的redis服務器中,客戶端攜帶token驗證時,會先到redis中獲取,實現登錄。
Jwt單點登錄
jwt本質就是把用戶信息通過加密生成一個字符串。
由頭部、有效載荷、簽名三部分組成
Jwt頭部是一個描述JWT數據的json對象
有效載荷是七個默認字段+自定義私有字段
簽名hax265(base64(header)+”.”+base64(payload),secret)
jwt是未加密的,不要包含私密信息。一旦jwt簽發,有效期內一直有效。
服務端把生產的token頒發給客戶端而自己不會保存。
使用jwt技術及私鑰公鑰來實現無需服務器保存用戶登錄信息。

三方登錄
由vue端發送post請求到后端獲取微博的掃描url,django端返回微博的url返回給前端,vue端通過路由跳轉到微博的掃描頁面,微博掃描后攜帶一個code碼值跳轉到vue端的redirect_uri地址上,可以通過code碼到微博訪問掃碼人的微博信息。
前端vue將code碼交給后端,后端攜帶code到微博中驗證用戶信息,信息正確進行一下操作,如果用戶在本客戶端綁定過直接登錄成功,沒有綁定后端返回微博的用戶id到前端。前端vue判斷type狀態,type為零時直接跳轉到首頁反之攜帶微博uid跳轉到綁定頁面。Vue綁定頁面中發送用戶信息、微博uid到后端,后端判斷用戶是否存在,用戶存在綁定用戶信息,用戶不存在時創建用戶並進行綁定。
RBAC
RBAC由用戶表、角色表、權限表、資源表組成
RBAC簡單的來說就是角色的訪問控制。
用戶表:用戶信息存儲表
角色表:管理員,學生,老師,校長
權限表:角色和資源的對應關系,這個角色可以訪問那些資源
資源表:通過不同的路由對應不同的資源,表數據的增刪改查。
權限本質是對數據庫中表中數據的增刪改查操作
不同操作根據前端不同路由,通過get、post、put、delete方法操作數據庫表
對權限的控制時判斷該用戶是否擁有該路由的操作權限
把角色和角色之間進行路由和請求進行關聯

 


免責聲明!

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



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