Session 登陸與 Token 登陸的區(qū)別
1、Session 登陸是在服務(wù)器端生成用戶相關(guān) session 數(shù)據(jù),發(fā)給客戶端 session_id 存放到 cookie 中,這樣在客戶端請求時帶上 session_id 就可以驗證服務(wù)器端是否存在 session 數(shù)據(jù),以此完成用戶認證。這種認證方式,可以更好的在服務(wù)端對會話進行控制,安全性比較高(session_id 隨機),但是服務(wù)端需要存儲 session 數(shù)據(jù)(如內(nèi)存或數(shù)據(jù)庫),這樣無疑增加維護成本和減弱可擴展性(多臺服務(wù)器)。 CSRF 攻擊一般基于 cookie。另外,如果是原生 app 使用這種服務(wù)接口,因為沒有瀏覽器 cookie 功能,所以接入會相對麻煩。
2、基于 token 的用戶認證是一種服務(wù)端無狀態(tài)的認證方式,服務(wù)端不用存放 token 數(shù)據(jù)。用戶驗證后,服務(wù)端生成一個 token(hash 或 encrypt)發(fā)給客戶端,客戶端可以放到 cookie 或 localStorage 中,每次請求時在 Header 中帶上 token,服務(wù)端收到 token,通過驗證后即可確認用戶身份。這種方式相對 cookie 的認證方式就簡單一些,服務(wù)端不用存儲認證數(shù)據(jù),易維護擴展性強,token 存在 localStorage 可避免 CSRF,web 和 app 應(yīng)用都比較簡單。不過這種方式在加密或解密的時候會有一些性能開銷(好像也不是很大),有些對稱加密存在安全隱患(aes cbc 字節(jié)翻轉(zhuǎn)攻擊)。
koa + session 登陸驗證
1、首先要安裝 koa-sisson 包
npm install koa-session -S
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。