opencart登陸,magento504
2022-10-13 10:15:10 - 米境通
1、常見單機和分布式應(yīng)用下登錄校驗
單機tomcat應(yīng)?用登錄檢驗
sesssion保存在瀏覽?和應(yīng)用服務(wù)?會話之間。
用戶登錄成功,服務(wù)端會保存一個session,服務(wù)器會給客戶端分發(fā)一個sessionID作為標(biāo)識。
客戶端會把sessionID保存在cookie中,每次請求都會攜帶這個sessionId。
分布式應(yīng)用中session共享
真實的應(yīng)用不可能單節(jié)點部署,所以就有個多節(jié)點登錄session共享的問題需要解決。
tomcat支持session共享,但是有廣播風(fēng)暴;用戶量大的時候,占用資源嚴(yán)重,不推薦。
使用redis存儲token思路:
服務(wù)端使用UUID生成隨機64位或128位token,放入redis中,然后返回給客戶端并存儲在cookie中。
用戶每次訪問都攜帶此token,服務(wù)端去redis中校驗是否有此用戶即可。
分布式應(yīng)用中使用JWT解決方案
優(yōu)點
生產(chǎn)的token可以包含基本信息,比如id、用戶昵稱、頭像等信息,避免再次查庫。
存儲在客戶端,不占用服務(wù)端的內(nèi)存資源。
缺點
token是經(jīng)過base64編碼,所以可以解碼,因此token加密前的對象不應(yīng)該包含?感信息,如用戶權(quán)限,密碼等。
如果沒有服務(wù)端存儲,則不能做登錄失效處理,除非服務(wù)端改密鑰。
對于JSONWebToken(JWT)基本概念,可以參考我以前的一篇文章,在此不過多贅述
密碼加密與微服務(wù)鑒權(quán)JWT
相關(guān)問答: