nodejs 的 session 簡單實現

2022-01-30 00:57:35 字數 962 閱讀 8531

session 不用多介紹,使乙個http可以對應乙個終端使用者。

session的本質使用cookie來實現。

原理大概是:http 帶來服務端提前設定 cookie,服務端拿到標示使用者身份的cookie, 再去固定地點(資料庫,檔案)檢索出對應的使用者身份。把身份賦值給本次請求的request,在程式處理中就知曉了使用者的身份了。(在php,asp或者其他服務端語言中都自動幫你實現了)

實現cookie

需要為每乙個使用者設定乙個可以標示使用者身份的cookie。可以使用如下規則

註冊郵箱md5值+密碼md5值+隨機碼md5值。(僅僅舉例,這可能並不是乙個好的方案)

服務端**片段:

res.setheader("set-cookie", ["sid="+newuser.tocookie()+";path=/;domain="+config.domain+";expires="+new date("2030") ]);

cookie

sid=275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee|275fccab7935736ff68c95c3ddbfaaee

使用 cookie 獲取使用者身份,設定session

把所有非靜態資源的請求都定向到這裡處理。獲取cookie,把cookie拆分並在資料庫查詢符合條件的使用者。最後使用 next 跳轉到下乙個請求邏輯。

下乙個請求邏輯就可是直接使用 req.session.user 來獲取 user 物件了。

session:function

(req, res, next);

if( req.cookies &&req.cookies.sid )

next();

});}

else

}

完  

基於nodejs使用session控制使用者登入

使用nodejs在本地搭建乙個簡易伺服器,如何做到登入控制呢?其中使用到了那些技術?相信每乙個前段技術人員對session storage與cookies都不會預設,那麼如何在專案中使用cookies儲存所需要的資料,做到登入控制呢?這裡結合自己做過的乙個專案給大家做乙個說明。session的本質基...

Tomcat中session共享問題的簡單解決辦法

使用redis配置tomcat共享session 分布式web server集群部署後需要實現session共享,針對 tomcat 伺服器的實現方案多種多樣,比如 tomcat cluster session 廣播 nginx ip hash策略 nginx sticky module等方案,本文...

NodeJs 使用TCP套接字收發資料的簡單例項

因為tcp協議是流協議,在收發資料的時候會有粘包的問題。本例使用自定義的sptcp封包協議對tcp資料再進行一次封裝,解決了粘包問題。注 其效能仍有待優化。優化方向 使用tcp自帶的接收視窗快取。script sptcp.js description 簡單封包協議sptcp類 authors alw...