簡體   English   中英

NodeJS-會話處理而無需快遞

[英]NodeJS - Session handling WITHOUT express

我已經構建了我的應用程序,我在NodeJS上使用了普通的JS,這是一個單頁應用程序。 我沒有用快遞。

首先,用戶需要登錄。登錄數據通過websocket發送到服務器,然后根據MySql-DB檢查憑據。 如果它們是正確的,則將生成loginIn-content並將其發送回客戶端,並在其中顯示它。

現在,當用戶已經登錄,然后刷新瀏覽器時,他將進入應用程序的初始狀態,並且需要再次登錄。

我怎樣才能解決這個問題?

我閱讀了很多有關NodeJS中的會話處理的信息,但是大多數文章都包含express,這使我無法理解整個概念。

對於純nodejs服務器,您可以嘗試https://www.npmjs.com/package/node-session庫。 首先,它適合您。 但是很長一段時間不支持它。

HTTP本身是無狀態的,因此您需要某種方式來識別用戶。

傳統上,這是通過Cookie完成的。 當您響應HTTP請求時,您將在響應標頭中包含一個cookie。 對於所有后續的HTTP請求,客戶端會將此cookie信息包括回給您。

這意味着您可以發送某種會話標識符,對於以后的所有請求,您都可以查找會話數據。 對話有點像這樣。

客戶端:這是我的登錄信息,我想要主頁。

服務器:好的,謝謝。 這是主頁。 另外,請記住您的會話ID為12345。下次您問我一些問題時,請告訴我該會話ID。 (登錄到數據庫中會話ID 12345與某個用戶相關聯。)

后來...

客戶:我想要另一頁。 您告訴我告訴我,我的會話ID為12345。

服務器:(加載12345的會話信息,發現它與某個用戶相關聯。)好的,這是另一個頁面。

如何實際存儲所有取決於您的內容。 許多人都在使用數據庫,因為他們通常已經在應用程序中使用了數據庫,並且可以輕松地與應用程序服務器的多個實例共享會話數據。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM