早期單一伺服器,使用者認證。
使用session物件實現
登入成功後把使用者資料放到session中session.setattribute("user",user)
訪問頁面判斷是否登入,從session中取資料,可以獲取到使用者資訊的是登入狀態 session.getattribute("user")
缺點:單點效能壓力,無法擴充套件
分布式,sso(single sign on)模式
1)session廣播機制 session複製
2)cookie+redis實現
在專案任何乙個地方登入,登入以後把資料放到兩個地方1-redis key存唯一隨機值,value存使用者資料 ;2-cookie 把redis裡面生成key放到cookie裡面
訪問頁面的時候取到cookie中的使用者資訊,然後到redis進行查詢,獲取到了資料表示已經登入
3)token實現
token是按照一定規則生成字串可以包含使用者資訊
在專案乙個地方進行登入,然後生成字串並返回,可以通過位址列或者cookie返回
訪問頁面的時候取到字串進行解析,取到了使用者資訊就表示已經登入
實現示例:
優點:無狀態: token無狀態,session有狀態的,基於標準化: 你的api可以採用標準化的 json web token (jwt)
缺點:占用頻寬,無法在伺服器端銷毀
基於微服務開發,選擇token的形式相對較多,因此我使用token作為使用者認證的標準
SSO單點登入
單點登入sso single sign on 就是在多個系統共存的環境下,使用者在一處登入 就不用在其他系統中登入,也就是使用者的一次登入就可以得到其他所有系統的信任。要點 儲存信任 驗證信任 最簡單實現sso的方法就是cookie,實現流程 然而cookie有如下缺點 1 cookie不安全 2 ...
sso單點登入
一 什麼是單點登入sso single sign on sso是一種統一認證和授權機制,指訪問同一伺服器不同應用中的受保護資源的同一使用者,只需要登入一次,即通過乙個應用中的安全驗證後,再訪問其他應用中的受保護資源時,不再需要重新登入驗證。二 單點登入解決了什麼問題 解決了使用者只需要登入一次就可以...
sso單點登入
1 sso single sign on 單點登入 解決了使用者只需要登入一次就可以訪問所有相互信任的應用系統,而不用重複登入,對使用者資訊進行統一管理。2 session共享 分布式中,為了提公升集群效能,我把使用者的session資訊儲存到redis中,key的格式例如 user session...